home *** CD-ROM | disk | FTP | other *** search
/ FM Towns: Free Software Collection 9 / FM Towns Free Software Collection 9.iso / windows / tool / mopterm / nyan.plt < prev    next >
Text File  |  1994-11-16  |  72KB  |  2,614 lines

  1. /*                                                                      *
  2. *        NiftY Auto Navigator(NYAN)          *
  3. *                                                                       *
  4. *  MopTermのオ-トパイロットです。 MopTermに登録してお使い下さい.
  5. * 内部に設定機能を持っていますので,MopTermから起動するだけでOKです。
  6. * とにかく,何も考えずに起動してみましょう。
  7. * MopTerm/Winのツ-ルバ-に登録すると便利です。
  8. *                                                                       *
  9. *  改造,再配付の際は,以下の著作権表示を保存して下さい.
  10. * All Right Reserved, Copyright (c)  
  11. *    モップ(NIFTY-PFF00570 SDI00717) (Masahiro Kezuka)
  12. *        1991,1992,1993,1994
  13. *                            
  14. * Patialy Copyrigt(c) 1993 -なる-☆ (PGA01332)
  15. * Patialy Copyrigt(c) 1993 Yama-chan(PEE01244)
  16. *
  17. *                                                    *
  18. *    1991年 7月  3日 初版  Ver0.01                    *
  19. *    1991年 7月  7日 2版  Ver0.02                    *
  20. *    1991年 7月 13日 3版  Ver0.03                    *
  21. *    1991年 8月  3日 4版  Ver0.04 complete version            *
  22. *    1992年 9月 18日 5版  Ver0.05 for nifty new spec        *
  23. *    1993年11月 22日 6 版  Ver0.06 for windows             *
  24. *    1993年12月 18日 7 版  Ver0.07 connect Sub Module
  25. *    1994年 4月  1日 8 版  Ver0.08 for NIFTY New Version(Mail header)
  26. *                                    */
  27.  
  28. var modem[80];        /* modem 種別 /NoMNPAT/MNPAT/会社名モデム機種名 */
  29. var telno[30];        /* 電話番号                    */
  30. var telty[10];        /* 回線の種別 1200|2400|2400T            */
  31. var telno2[30];        /* 電話番号(Retry)                */
  32. var telty2[10];        /* 回線の種別(Retry) 1200|2400|2400T        */
  33. var line[5];        /* プッシュ回線か,ダイヤル回線か T/P        */
  34. var id[9];        /* NIFTYのユーザID                */
  35. var pass[9];        /* パスワード                    */
  36. var logd[20];        /* ログ格納用ディレクトリー(最後の\はなし)    */
  37. var forum[1000];    /* フォーラム名( 「,」 で複数)            */
  38. var hp[1000];        /* HP ID/HPパスワード/HP名( 「,」 で複数)    */
  39.  
  40.  
  41. /***********************************************************************
  42. *
  43. *              共通の処理ルーチン
  44. *
  45. ***********************************************************************/
  46. /*  パラメタで指定されたファイルを削除する */
  47. %delfile{ [ filename ]
  48.     dispoff({Yes});
  49.     command({del }|filename);
  50.     dispoff({No})
  51. };
  52.  
  53. /* パラメタで指定されたディレクトリへ移動する(「A:\」と「A:」の両方が可能) */
  54. %setcdir2 {[dir]
  55.     %dir2 @case(@nochar(dir),
  56.         2,{im(dir|{\})},,{im(dir)});
  57.     setcdir(dir2)
  58. };
  59.  
  60. /* 指定されたディレクトリー配下に,第2パラメターで指定されたディレクトリを
  61.      (もし,無ければ)作成する。 */
  62. %mkdir{ [ dir , name ]
  63.     dispoff({Yes});
  64.     case(@setcdir2(dir), {Yes}, {
  65.         command({mkdir } | name )},
  66.       {No},{select({装置(} | dir | {)が使えませんが?},99999,{},
  67.         {  もう一回やってみる },{mkdir(dir,name)},
  68.         {  自動処理をやめる },{stop},
  69.         {  無視して先の処理をやる },{})
  70.            });
  71.     dispoff({No})
  72. };
  73.  
  74. /* 第1パラメタのファイルの中身を 第2パラメタのファイルにコピーする */
  75. %copyfile{[OldName,NewName]
  76.     dispoff({Yes});
  77.     command({copy }| OldName | { } | NewName);
  78.     dispoff({No})
  79. };
  80.  
  81. /* オープンされているメモを全て, クローズする */
  82. %CloseAllMemo{
  83.     case(@mcheck !=0,
  84.     {Yes},{ loop({ mclose(2);
  85.                im(@mcheck !=0)
  86.         })
  87.     })
  88. };
  89.  
  90. /***********************************************************************
  91. *
  92. *              自動的に,Niftyに接続し,目的の処理を行う
  93. *
  94. ***********************************************************************/
  95. %autoacc2{
  96.  
  97. /***********************************************************************
  98. *
  99. *  ROAD1,ROAD2の各タイプに応じて,接続処理を行う 
  100. *
  101. ***********************************************************************/
  102.     %type00 {
  103.     type({.00+});
  104.     wait(20         ,type00,  /* 20秒待って,なにもこないなら,00+ */
  105.          {46+}      ,type00,  /* 46+ なら 00+                      */
  106.          {+\n00+}   ,type00,  /* 00+ なら 00+                      */
  107.          {Enter}    ,         /* Enter C.. なら 終わり */
  108.     );
  109.     };
  110.  
  111.     %Road2c {
  112.     type({C NIF\n});
  113.     wait(20,{stop},{*},Road2c,{Connect},)
  114.     };
  115.  
  116.  
  117.     /* road2 or road3 */
  118.     %Road2p {
  119.         wait(4,{
  120.                 type({@P\n});
  121.                 wait(20,{stop},{*},);    /* *を待つ */
  122.         },{*});
  123.         Road2c;
  124.     };
  125.  
  126.     %callrd11 {[telno]
  127.     %MNPOff @case(@getchar(modemtype,6,1),
  128.             {m},{ im({\N0}) },
  129.             {n},{ im({}    ) } );
  130.     display({ROAD1/1200(} | telno | {)に電話をかけます\n});
  131.     baud(1200);
  132.     dialone({AT} | @head(modem,{/})| MNPOff |
  133.         {D} | line | { } | telno ,
  134.         {type00;im({No})},{im({Yes})})
  135.     };
  136.     %callrd12 {[telno]
  137.     display({ROAD1/2400(} | telno | {)に電話をかけます\n});
  138.     baud(maxbaud);
  139.     dialone({AT} | @head(modem,{/}) |@body(modem,{/},{/}) | {D} | 
  140.         line |  { } | telno ,
  141.         {type00;im({No})},{im({Yes})})
  142.     };
  143.     %callrd2 {[telno]
  144.     display({ROAD2/2400(} | telno | {)に電話をかけます\n});
  145.     baud(maxbaud);
  146.     dialone({AT} | @head(modem,{/}) |@body(modem,{/},{/}) | {D} | 
  147.         line |  { } | telno ,
  148.         {Road2p;im({No})},{im({Yes})})
  149.     };
  150.  
  151.     %callone{[telty,telno]
  152.     case(telty,
  153.         {1200}, {callrd11(telno)},
  154.         {2400}, {callrd12(telno)},
  155.         {2400T},{callrd2(telno)} ,
  156.                ,{im({Yes})}       )
  157.     };
  158.  
  159.     %callnif{
  160.     %modemtype @tail(modem,{_});
  161.     %maxbaud @getchar(modemtype,1,5);
  162.     dispecho({No});
  163.          /* MNPなら, 送信文書はエコーバックを表示する */
  164.     case(@getchar(modemtype,6,1),{m},{dispecho({Yes})});
  165.  
  166.     loop({
  167.         case(@callone(telty,telno),
  168.         {Yes},{         callone(telty2,telno2)
  169.         },{No},{im({No})
  170.         })
  171.     })
  172.     };
  173.  
  174. /***********************************************************************
  175. *
  176. *              未読のメールをダウンする
  177. *
  178. ***********************************************************************/
  179.     %GoMail{
  180.     type({MAIL\n});
  181.     wait(20,{stop},
  182.     {\n>},{
  183.         type({SET MENU OFF\n});
  184.         wait(30,{stop},{\nMAIL>})
  185.     },{\nMAIL>});
  186.  
  187.     type({SET PAGE OFF\n});
  188.     wait(30,{stop},{\nMAIL>})
  189.     };
  190.  
  191.     %Mail2 {
  192.     loop({
  193.         wait(30,{stop},
  194.             {終了)\n>}     ,{type({\n}); im({Yes})},
  195.             {終了)\n:}     ,{type({2\n});im({Yes})},
  196.             {\naction:}     ,{type({SAVE\n});im({Yes})},
  197.             {終了)\n>}    ,{im({No})},
  198.             {\nMAIL>}       ,{im({No})}
  199.         )
  200.     })
  201.     };
  202.  
  203.  
  204.     %MailDown {
  205.     wait(20,{stop},{\n>},);
  206.  
  207.     GoMail;
  208.  
  209.     mkdir(logd,{MAIL});
  210.     receive(logd | {\mail\mail.log});
  211.     type({READ NEW\n});
  212.     Mail2;
  213.     stoprec;
  214.     };
  215.  
  216. /***********************************************************************
  217. *
  218. *  HPの未読をダウンする 
  219. *
  220. ***********************************************************************/
  221.     %GoHP{[name,pass]
  222.     type({GO HP\n});
  223.     wait(30,{stop},{\n>},);
  224.     type({1\n});
  225.     wait(30,{stop},{\n:},);
  226.     type(name|{\n});
  227.     wait(100,{stop},
  228.       {該当する利用者の},{
  229.             wait(30,{stop},{\n>},);
  230.             im({No})
  231.     },{\nHP>},{
  232.             type({SET PAGE OFF\n});
  233.             wait(100,{stop},{\nHP>},,);
  234.             im({Yes})
  235.     },{\n:},{      type(pass|{\n});
  236.             wait(100,{stop},{\nHP>},,);
  237.             type({SET PAGE OFF\n});
  238.             wait(100,{stop},{\nHP>},,);
  239.             im({Yes})
  240.       });
  241.     };
  242.  
  243.     %oneHP {[name,pass,fname] 
  244.    /* down all message */
  245.     delfile(fname | {.tlt});
  246.     receive(fname | {.tlt});
  247.  
  248.     GoHP(name,pass);
  249.  
  250.     test(,,{\nHP>},{
  251.         stoprec;
  252.         receive(fname | {.log});
  253.         type({READ NEW\n});      /* type first boad number */
  254.         wait(60,{stop},
  255.             {\nHP>}         ,,
  256.             {◆指定日付以降},{wait(60,{stop},{\nHP>},)}
  257.         );
  258.         stoprec;
  259.         case(id = name,
  260.           {Yes},{
  261.             delfile( fname | {.usr});
  262.             receive(fname | {.usr});
  263.             type({GUEST\n});
  264.             wait(100,stop,{\nHP>});
  265.             stoprec;
  266.         })
  267.     },,{    stoprec
  268.     })
  269.     };
  270.  
  271.     %HP{
  272.     var hp2[200];
  273.     mkdir(logd,{HP});
  274.     hp2 := hp;
  275.     loop({
  276.         %hpset @head(hp2,{,});
  277.         hp2 := @body(hp2,{,});
  278.         oneHP(  @head(hpset,{/}) ,
  279.             @body(hpset,{/},{/}),
  280.             logd | {\hp\} | @tail(hpset,{/}) );
  281.         im( hp2 <> {} )
  282.     });
  283.     };
  284.  
  285. /***********************************************************************
  286. *
  287. *             フォーラムの未読をダウンロードする 
  288. *
  289. ***********************************************************************/
  290.     %GoForum{[fname]
  291.     %SetMode{
  292.         type({SET PAGE OFF\n});
  293.         wait(30,{stop},{\nFORUM>});
  294.         type({SEND OFF\n});
  295.         wait(30,{stop},{\nFORUM>})
  296.     };
  297.     type({GO }| fname |{\n});
  298.     loop({
  299.         wait(30,{stop},
  300.             {終了)\n>}     ,{type({\n});im({Yes})},
  301.             {◆番号又はコマンドを入力},
  302.                      {
  303.                     wait(30,{stop},{\n>},);
  304.                     im({No})},
  305.             {◆現在このフォーラムは},
  306.                      {
  307.                     wait(30,{stop},{\n>},);
  308.                     im({No})},
  309.             {-保守作業の為},
  310.                      {
  311.                     wait(30,{stop},{\n>},);
  312.                     im({No})},
  313.             {終了\n>}      ,{
  314.                     type({SET MENU OFF\n});
  315.                     wait(30,{stop},{\nFORUM>});
  316.                     SetMode;
  317.                     im({No})},
  318.             {\nFORUM>}      ,{
  319.                     SetMode;
  320.                     im({No})}
  321.         )
  322.     });
  323.     };
  324.  
  325.     %oneForum { [ fname ]
  326.  
  327.     %ForumDir   logd | {\} | fname;
  328.  
  329.     %readall{
  330.         %Down3{[boadn]
  331.             stoprec;
  332.             receive( ForumDir | {\MES} | boadn | {.log});
  333.             readall;
  334.         };
  335.         wait(10000,{stop},{◆次頁はありません◆},,
  336.          {MES( 1):},{Down3({01})},{MES( 2):},{Down3({02})},
  337.          {MES( 3):},{Down3({03})},{MES( 4):},{Down3({04})},
  338.          {MES( 5):},{Down3({05})},{MES( 6):},{Down3({06})},
  339.          {MES( 7):},{Down3({07})},{MES( 8):},{Down3({08})},
  340.          {MES( 9):},{Down3({09})},{MES(10):},{Down3({10})},
  341.          {MES(11):},{Down3({11})},{MES(12):},{Down3({12})},
  342.          {MES(13):},{Down3({13})},{MES(14):},{Down3({14})},
  343.          {MES(15):},{Down3({15})},{MES(16):},{Down3({16})},
  344.          {MES(17):},{Down3({17})},{MES(18):},{Down3({18})},
  345.          {MES(19):},{Down3({19})},{MES(20):},{Down3({20})}
  346.         );   
  347.         
  348.     };
  349.  
  350.     mkdir(logd , fname);
  351.     delfile( ForumDir | {\title} | {.log});
  352.     receive( ForumDir | {\title} | {.log});
  353.  
  354.     GoForum(fname);
  355.  
  356.     test(,,{\nFORUM>},{
  357.         type({MES\n});
  358.         wait(50,{stop},{\n>});
  359.         type({MREAD\n\n});
  360.  
  361.         readall;
  362.  
  363.         stoprec;
  364.         wait(30,{stop},{\n>},);
  365.         type({SEND ON\n});
  366.         wait(30,{stop},{\n>},)
  367.     },,{    stoprec;
  368.     })
  369.     };
  370.  
  371.  
  372.     %Forum{
  373.     var f2[1000];
  374.     f2 := forum;  /* forum= 「FORUM1,FORUM2,,,」 */
  375.     loop({
  376.         %fname @head(f2,{,});
  377.         f2 := @body(f2,{,});
  378.         oneForum(  fname );
  379.         im( f2 <> {} )
  380.     });
  381.     };
  382.  
  383. /***********************************************************************
  384. *
  385. *             Niftyの課金情報を見る。
  386. *
  387. ***********************************************************************/
  388.     %bill{
  389.     delfile( logd | {\BILL.LOG});
  390.     receive( logd | {\BILL.LOG});
  391.     type({GO BILL\n});
  392.     wait(30,{stop},{\n>},);
  393.     type({2\n});
  394.     wait(30,{stop},{了)\n>},);
  395.     stoprec;
  396.     };
  397. /***********************************************************************
  398. *
  399. *             フォーラム, HP , メールに, メッセージをアップする。
  400. *
  401. ***********************************************************************/
  402.     %UpText{
  403.     var IndexLine[82];
  404.     %FNameTop logd | {\UP\};
  405.     %IndexFName FNameTop | {INDEX.TXT}; /* 制御ファイル */
  406.     %SaveFName FNameTop | {SAVE.TXT};   /* 作業用のファイル*/
  407.  
  408.         /* 制御ファイルから, 予約(予)されたファイルを一つ取り出し 
  409.             アップ処理を行う  */
  410.     %UpOne{
  411.         %UpBody{
  412.             %fno @head(@getchar(IndexLine,4,3),{ });
  413.             send( FNameTop | {MES} | fno | {.TXT});
  414.             type({\n/E\n});
  415.             wait(300,{stop},{\n:},);
  416.             type({2\n});
  417.             loop({  /* メールの不在通知のために */
  418.                 wait(30,{stop},
  419.                   {処理)\n>}  ,{type({\n});im({Yes})},
  420.                   {\n:}        ,{im({No})}
  421.                 )
  422.             });
  423.             type({1\n}); /*  2 :For Debug */
  424.         };
  425.         %UpForum{
  426.             %ResNum @getchar(IndexLine,26,5);
  427.  
  428.             GoForum(@getchar(IndexLine,14,8));
  429.  
  430.             type({MES }| @getchar(IndexLine,23,2) |{\n});
  431.             wait(30,{stop},{\nCCS(N)>},);
  432.             case( ResNum ,{     }, {
  433.                 type({SAY\n});
  434.                 wait(30,{stop},{\n:},);
  435.                 type({1\n});
  436.             },,{
  437.                 type({RE } | (ResNum+0) |{\n});
  438.             });
  439.             wait(30,{stop},{/E)\n},);
  440.             type({SUB:} | @getchar(IndexLine,32,80) );
  441.             UpBody;
  442.             wait(130,{stop},{\nCCS(N)>},);
  443.             type({SEND ON\n});
  444.             wait(30,{stop},{\nCCS(N)>},); 
  445.         };
  446.         %UpHP{
  447.             %name @head(@getchar(IndexLine,14,8),{ });
  448.             %HPData @tail(@head(hp,{/} | name),{,});
  449.             %HPID   @head(HPData,{/});
  450.             %HPPass @tail(HPData,{/});
  451.  
  452.             /*display({「}|HPID|{,}|HPPass|{\n});*/
  453.             GoHP(HPID,HPPass);
  454.  
  455.             type({WRITE\n});
  456.             wait(30,{stop},{\n:},);
  457.             type(@getchar(IndexLine,32,80) );
  458.             wait(30,{stop},{\n:},);
  459.             type({1\n});
  460.             wait(30,{stop},{/E)\n},);
  461.             UpBody;
  462.             wait(130,{stop},{\nHP>},);
  463.         };
  464.         %UpMail{
  465.             GoMail;
  466.  
  467.             type({COM\n});
  468.             wait(30,{stop},{/E)\n},);
  469.             type({SUB:}| @getchar(IndexLine,32,80));
  470.             type({TO:} | @getchar(IndexLine,14,8) | {\n});
  471.             wait(30,{stop},{\n},);
  472.             /*type({TO:AAA00000\n}); /* echo back me */
  473.             /*wait(30,{stop},{\n},);  */
  474.             /*type({FROM:ハンドル名\n});   ハンドルを入れる場合用 */
  475.             wait(30,{stop},{\n},);
  476.             UpBody;
  477.             wait(130,{stop},{\nMAIL>},); 
  478.         };
  479.  
  480.         var Return[4];
  481.         delfile(SaveFName);
  482.         Return := {No};
  483.         fopen(IndexFName);
  484.         loop({  IndexLine := @fread;
  485.             case(@getchar(IndexLine,1,2),
  486.             {予},{  case(@getchar(IndexLine,8,5),
  487.                     {Forum},UpForum,
  488.                     {HP   },UpHP,
  489.                     {Mail },UpMail);
  490.                 IndexLine := {済} | @getchar(IndexLine,3,80);
  491.                 loop({  write(SaveFName,IndexLine  );
  492.                     IndexLine := @fread;
  493.                     im(IndexLine <> {});
  494.                 });
  495.                 copyfile(SaveFName,IndexFName);
  496.                 Return := {Yes};
  497.                 im({No})
  498.             },{保},{write(SaveFName,IndexLine );
  499.                 im({Yes})
  500.             },{済},{write(SaveFName,IndexLine );
  501.                 im({Yes})
  502.             },,{    im({No})
  503.             })
  504.         });
  505.         fclose;
  506.         im(Return)
  507.     };
  508.  
  509.     /* 前回, アップしたファイル(済)を削除する */
  510.     %DelOldText{
  511.         var AnyWrite[3];
  512.         AnyWrite:={No};
  513.         delfile(SaveFName);
  514.         fopen(IndexFName);
  515.         loop({  IndexLine := @fread;
  516.             case(@getchar(IndexLine,1,2),
  517.             {予},{  write(SaveFName,IndexLine );
  518.                 AnyWrite:={Yes};
  519.                 im({Yes})
  520.             },{保},{write(SaveFName,IndexLine );
  521.                 AnyWrite:={Yes};
  522.                 im({Yes})
  523.             },{済},{%fno @head(@getchar(IndexLine,4,3),{ });
  524.                 delfile( FNameTop | {MES} | fno | {.TXT});
  525.                 im({Yes})
  526.             },,{    im({No})
  527.             })
  528.         });
  529.         fclose;
  530.         case(AnyWrite,
  531.         {Yes},{copyfile(SaveFName,IndexFName)},
  532.         {No} ,{delfile(IndexFName)} )
  533.     };
  534.  
  535.     /* UpText Main */
  536.     case(@filechk(IndexFName),
  537.             {Yes},DelOldText);
  538.  
  539.     case(@filechk(IndexFName),
  540.             {Yes},{ loop(UpOne) });
  541.     };
  542.  
  543. /***********************************************************************
  544. *
  545. * メイン処理       Call Telephone and Send Id ,Password
  546. *
  547. ***********************************************************************/
  548.  
  549.     stopbit(1);
  550.     xon({Yes});
  551.     rscs({Yes});
  552.     click({No});
  553.     nattou({Yes});
  554.     account(logd | {\ACCOUNT.TXT},{NIFTY-Serve});
  555.  
  556.     footnote({NIFTY-Serveへ電話をかけています。});
  557.     callnif;
  558.     footnote({NIFTY-Serveの前処理をしています。});
  559.  
  560.     case(id,{},{
  561.         select({ユーザIDの設定がありません。後は手動で?},10,stop,
  562.         {やります},stop,{電話を切ります},{discon;stop})
  563.     });
  564.  
  565.     wait(20,{stop},{Connection-ID  --->},);
  566.     type({SVC\n});
  567.     wait(20,{stop},{Enter User-ID  --->},);
  568.     type( id | {\n});     /* AAA00000は貴方のユーザIDに変更して下さい */
  569.     wait(20,{stop},{Enter Password --->},);
  570.  
  571.     case(pass,
  572.       {},{  footnote({パスワードをキーボードから入れて下さい});
  573.                /*パスワードを,直接入力する */
  574.         sendtype({Ch/2});
  575.         chat({Yes});
  576.         wait(300,{stop},{ようこそ},);
  577.         chat({No});
  578.         sendtype({Line});
  579.         footnote({前置きの処理をしています。});
  580.          },
  581.         ,{type(pass | {\n})});
  582.  
  583.     setcdir2(logd);
  584.     delfile( logd |  {\title} | {.log});
  585.     receive(logd |  {\title} | {.log});
  586.     loop({
  587.         wait(30,    {stop},
  588.             {\n>},               {type({\n});im({Yes})},
  589.             {TOP},{im({No})}
  590.         )
  591.     });
  592.     wait(30,{stop},{\n>},); 
  593.     stoprec;
  594.  
  595.  
  596.             /* read mail  */
  597.     footnote({メールの受信処理をしています。});
  598.     type({MCHECK\n});
  599.     wait(30,    {stop},
  600.          {\n>}, ,
  601.          {未読分},MailDown
  602.         );
  603.  
  604.     case( hp<>{},{Yes},{
  605.         footnote({HPの受信処理をしています。});
  606.         HP              /* read hp */
  607.     });
  608.  
  609.     case( forum<>{},{Yes},{
  610.         footnote({フォーラムの受信処理をしています。});
  611.         Forum;          /* read forum */
  612.     });
  613.  
  614.     footnote({文書のアップ処理をしています。});
  615.     UpText;         /* Upload Forum,Hp,Mail */
  616.  
  617.         /* 課金情報の表示 */
  618. /*      footnote({NIFTYの課金情報を参照しています。});
  619.     bill;*/
  620.  
  621.     footnote({NIFTYの終了処理をしています。});
  622.     type({bye\n});
  623.     wait(30,,{ました。});
  624.     wait(3);
  625.     discon;
  626.     footnote({});
  627.  
  628. };      /* end of autoacc2 */
  629.  
  630.   /* 残り容量を確認してから, autoacc2を行う */
  631. %autoacc{
  632.     case(@diskrem < (50*1024),
  633.         {Yes},{
  634.             select({このディスクの残り容量(} | (@diskrem / 1024)
  635.                 | {Kbyte)では不足です。}
  636.             ,30,,   {確認}, )
  637.         },{No},autoacc2
  638.     )
  639. };
  640.  
  641. /***********************************************************************
  642. *
  643. *   ダウンロードした,文書を読む処理
  644. *
  645. ***********************************************************************/
  646.  
  647. /***********************************************************************
  648. *
  649. *    フォーラムの会議室, HPの内容, MAILの内容を一覧,表示,選択可能とする。
  650. *      fname : 会議室のログのファイル名
  651. *      type  : Form:ファーラムの会議室ログ
  652. *              HP  : HPのログ
  653. *              Mail:メールのログ
  654. *      ForumN: フォーラム名,HP名
  655. *
  656. ************************************************************************/
  657. %boadmenu
  658. {[fname,type,ForumN]
  659. var linenum[8]; /* 表示中メッセージの行番号(MEMO.1内の一覧での行位置) */
  660. var FoType[8];  /* Stock :Stock会議室    Cyclic:Cyclic会議室 */ 
  661.  
  662.       /* タイトルを抜き出して,メモに一行のに入れる処理 */
  663.     %setline {
  664.       var item[92];
  665.       case(type,
  666.       {Forum},{
  667.         case(FoType,
  668.         {Stock},{
  669.           item:=@ftell | {  } | @getchar(line,1,3);
  670.           %line2 @fread;
  671.           case(@getchar(line2,27,2),
  672.             {へ},{item:=item | @getchar(line2,23,4)},
  673.                 ,{item:=item | {    }}
  674.           );
  675.           item:=item | @getchar(line,19,80);
  676.         },{Cyclic},{
  677.           item:=@ftell | {  } | @getchar(line,1,5);
  678.           %line2 @fread;
  679.           case(@getchar(line2,29,2),
  680.             {へ},{item:=item | @getchar(line2,23,6)},
  681.                 ,{item:=item | {      }}
  682.           );
  683.           item:=item | @getchar(line,21,80);
  684.         });
  685.         madd(2,item);
  686.     },{HP},{
  687.           item:=@ftell | {  } | @getchar(line,1,3);
  688.           item:=item | { } |@getchar(line,7,14) |
  689.             @getchar(line,23,9) | @getchar(line,37,50);
  690.           madd(2,item);
  691.     },{Mail},{
  692.           item:=@ftell;
  693.           %line2 @fread;
  694.           item:=item | @getchar(line,4,17) | @getchar(line,23,8) |
  695.             @getchar(line,32,6) | { } | @getchar(line2,11,43);
  696.           madd(2,item);
  697.     });
  698.     };
  699.  
  700.     /* オリジナルの題名から, 応答用の題名を作成する関数 */
  701.     %resTitle{[org]
  702.         case(@getchar(org,1,3),
  703.         {Re:},{im( {Re*2:} | @getchar(org,4,80) )},
  704.         {re:},{im( {Re*2:} | @getchar(org,4,80) )},
  705.         {RE:},{im( {Re*2:} | @getchar(org,4,80) )},
  706.         {Re*},{ %after @getchar(org,4,80);
  707.             %num @head(after,{:});
  708.             im( {Re*} | (num+1) | {:} |
  709.                 @body(after,{:},) )
  710.             },
  711.              ,{im( {Re:} | org )}
  712.         )
  713.     };
  714.  
  715.     /* 送信用の文書を,制御ファイルに登録する */
  716.     %SetIndex{
  717.        var fno[5];
  718.        var IndexLine[82];
  719.        var Wtitle[82];
  720.        var Wtitle2[82];
  721.        %Wtype 
  722.            @select({このメッセージを送信予約しますか?。}
  723.             ,99999,{},
  724.             {送信予約する},                 {im({予})},
  725.             {送信予約しないが保存する},     {im({保})},
  726.             {保存しないで捨てる。},          {im({捨})},
  727.             {再度,編集に戻る。},            {im({戻})}
  728.         );
  729.         case(Wtype , 
  730.         {捨},{im(Wtype)},
  731.         {戻},{im(Wtype)},
  732.          ,{  /* Wtype = 0 or Wtype = 1 */
  733.         %Line @memo(2,linenum,1);
  734.         case(type,
  735.         {Forum},{
  736.             IndexLine := {Forum:} | 
  737.                 @getchar(ForumN|{       },1,8) | {/} |
  738.                 @head(@tail(fname,{MES}),{.}) | {/} |
  739.                 @case(FoType,{Stock},{
  740.                         im({00}|@getchar(Line,11, 3))},
  741.                          {Cyclic},{getchar(Line,11,5)}) ;
  742.             Wtitle := @case(FoType,
  743.                     {Stock} ,{getchar(Line,38,80)},
  744.                     {Cyclic},{getchar(Line,41,80)});
  745.         },{HP},{
  746.             IndexLine := {HP   :} | 
  747.                 @getchar(ForumN|{       },1,8) |
  748.                 {         };
  749.             Wtitle := @getchar(Line,39,80);
  750.         },{Mail},{
  751.             IndexLine := {Mail :} | 
  752.                 @getchar(Line,26,8) |
  753.                 {         };
  754.             Wtitle := @getchar(Line,41,80);
  755.         });
  756.         Wtitle := @getchar(@resTitle(Wtitle),1,80);
  757.         loop({
  758.             Wtitle2 :=@input({題名を入れて下さい。},,Wtitle) ;
  759.             case(@nochar(Wtitle2)>40,{Yes},{
  760.             footnote({題名は, 全角20文字までです});
  761.             im({Yes})
  762.             },,{im({No})
  763.             });
  764.         });
  765.         footnote({});
  766.         Wtitle := @case( Wtitle2 , {} ,{im(Wtitle)},
  767.                           ,{im(Wtitle2 | {\n})});
  768.  
  769.         fno := 0;
  770.         mkdir(logd , {UP});
  771.         %nametop logd | {\UP\};
  772.         loop({ fno := fno+1;
  773.             filechk(nametop | {MES} | fno | {.txt})
  774.         });
  775.         fno := @getchar(fno | {   },1,3);
  776.  
  777.         IndexLine := Wtype | { } | fno | { } | IndexLine |
  778.             {:} | Wtitle ;
  779.  
  780.         write( nametop | {INDEX.TXT}, IndexLine);
  781.  
  782.         im( nametop | {MES} | fno | {.txt});
  783.         })
  784.     };
  785.  
  786.   /* メッージを上半分に表示,下半分でコメント書けるようにする
  787.        メモ3がメッセージ, メモ4がコメント   */
  788.     %responce{
  789.         CloseAllMemo;
  790.         mopen(3,0,21,639,250); /* 見るだけの 画面 */
  791.         mclose(1);
  792.         madd(4,{});
  793.         mset(4,{w});
  794.         mopen(4,0,251,639,459); /* コメント用 画面 */
  795.         footnote({終了},{b});
  796.         loop(  {waitx(1000);
  797.             im(@xtype!=2 && @xtype!=101 && @xtype!=201)
  798.         });
  799.         case(@memo(4) <> {},
  800.         {Yes},{
  801.             %OutFile @SetIndex;
  802.             CloseAllMemo;
  803.             mset(4,{n});
  804.             case(OutFile , 
  805.             {捨},{},
  806.             {戻},responce,
  807.                 ,{mwrite(OutFile,4)}
  808.             );
  809.         },,{
  810.             CloseAllMemo;
  811.             mset(4,{n});
  812.         })
  813.     };
  814.  
  815.  
  816.   /* メッセージはメモ2を使用して表示, PF2で前, PF3で後, PF1で終了する。*/
  817.     %dispone{
  818.       var cont[4];
  819.       loop({  cont := {Yes};
  820.           %st @getchar(@memo(2,linenum,1),1,8);
  821.           %len @getchar(@memo(2,linenum+1,1),1,8)-st;
  822.           case( len > 0 ,
  823.            {Yes},{
  824.             mclear(3);
  825.             mclear(4);
  826.             mread(fname,3,st,len);
  827.             mset(3,{r});
  828.             mopen(3,0,21,639,459); /* 見るだけの画面 */
  829.             footnote({終了 前  次 応答},
  830.                   {b});
  831.             loop(  {waitx(1000);
  832.               im(@xtype<100)
  833.             });
  834.             case( @xtype,
  835.               101, {cont := {No}},
  836.               201, {cont := {No}},
  837.               102, {linenum := linenum-1},
  838.               202, {linenum := linenum-1},
  839.               103, {linenum := linenum+1},
  840.               203, {linenum := linenum+1},
  841.               104, {responce},
  842.               204, {responce}  
  843.             );
  844.             case(@mcheck != 0, {Yes}, { mclose(3) });
  845.             CloseAllMemo;
  846.          });
  847.          im( cont && len>0)
  848.        });
  849.        mset(3,{n})
  850.     };
  851.  
  852.   /* メッセージのタイトルを読みこみ,メモ1にタイトル一覧を作成する */
  853.     mclear(2);
  854.     madd(2,{99999999 } |
  855.       {★表示したいメッセージを左ダブルクリック}|
  856.       {(又はカーソル移動+PF2)してね★\n});
  857.     fopen(fname);
  858.         /* 「/」の位置で,タイトル行を見分けます。 */
  859.     %sulashP @case(type,    
  860.         {Forum},{
  861.             case(@getchar(@read(fname,1,1),6,1)={/} ||
  862.                  @getchar(@read(fname,2,1),6,1)={/} ,
  863.             {Yes},{ FoType:={Cyclic};
  864.                 im(6)
  865.             },,   {FoType:={Stock};
  866.                 im(4)
  867.             })
  868.         },
  869.         {HP},   {im(9)},
  870.         {Mail}, {im(43)} );    /* change 94/04/01 */
  871.     footnote({ログの取り出しをしています。ちょっと,お待ちを!});
  872.     crchg({No});
  873.     loop({
  874.         %line @fread(sulashP,{/});
  875.         setline;
  876.         im(line <> {})
  877.     });
  878.     crchg({Yes});
  879.     fclose;
  880.     
  881.   /* 一覧を表示し,メッセージを選択してもらう */
  882.     linenum:=0;
  883.     mset(2,{r});
  884.     loop({
  885.       mopen(2,0,21,639,459);
  886.       curline(linenum);
  887.       footnote({終了表示},{b});
  888.       loop({waitx(1000);
  889.         im(@xtype!=2 && @xtype<100)
  890.       });
  891.       linenum := @xlinenum;
  892.       case(@xtype,
  893.           2,{ 
  894.           CloseAllMemo;
  895.           dispone; /* 選択されたメッセージの表示 */
  896.           im({Yes})},
  897.         101,{im({No}) },
  898.         102,{ 
  899.           CloseAllMemo;
  900.           dispone; /* 選択されたメッセージの表示 */
  901.           im({Yes})},
  902.         201,{im({No}) },
  903.         202,{ 
  904.           CloseAllMemo;
  905.           dispone; /* 選択されたメッセージの表示 */
  906.           im({Yes})}
  907.       )
  908.     });
  909.     case(@mcheck != 0, {Yes}, { mclose(3) });
  910.     CloseAllMemo;
  911.     mset(2,{n});
  912.     
  913. }; /* end of log menu */
  914.  
  915. %dispFile{[filename]
  916.     case(@filechk(filename),{Yes},{
  917.         mclear(2);
  918.         mread(filename,2);
  919.         mset(2,{r});
  920.         mopen(2,0,21,639,459);
  921.         footnote({終了},{b});
  922.         loop({waitx(1000);
  923.             im(@xtype!=2 && @xtype<100)
  924.         });
  925.         case(@mcheck != 0, {Yes}, { mclose(3) });
  926.         mset(2,{n})
  927.     },{No},{
  928.         select({受信済みのファイルがありません。},10,{},{確認},)
  929.     })
  930. };
  931.  
  932.  
  933.  
  934. %readdoc{
  935. var boadnum[10];
  936.     %setdocm{
  937.     var f2[1000];
  938.     %oneHP{[name]
  939.         %name2 @getchar(name | {       },1,8);
  940.         madd(1,{<}|name2|{> HPの最新オープンニング\n});
  941.         madd(1,{<}|name2|{> HPの内容              \n});
  942.         case(@filechk( logd |  {\HP\} | fname | {.USR}),{Yes},{
  943.             madd(1,{<}|name2|{> HPの最近の参照者\n})
  944.         })
  945.     };
  946.     %oneBoad{
  947.         %line @fread(23,{/});
  948.         case(line<>{},{Yes},{
  949.             madd(1, {<} | name2 | {> フォーラム } |
  950.                 @getchar(line,1,2) |
  951.                 { 会議室 :} | 
  952.                 @getchar(line,29,80) );
  953.             im({Yes})   /* return Yes for continue    */
  954.         },{No},{im({No})})  /* return No  for end of file */
  955.     };
  956.     %oneForum{[name]
  957.         %name2 @getchar(name | {       },1,8);
  958.         madd(1,{<}|name2|{> フォーラムのオープンニング\n});
  959.         fopen( logd | {\} | name | {\title} | {.log});
  960.         loop({oneBoad});
  961.         fclose;
  962.     };
  963.  
  964.     /* setdocm main start */
  965.     mclear(1);
  966.     madd(1,{  ★  読みたい物を左ダブルクリック}|
  967.            {(又はカーソル移動+PF2)で選択して下さい ★ \n});
  968.     case(@filechk( logd |  {\TITLE.LOG}),
  969.         {Yes},{ madd(1,{             }|
  970.             {最新のNifty オープニングメッセージ \n})});
  971.     case(@filechk( logd |  {\BILL.LOG}),
  972.         {Yes},{ madd(1,{             }|
  973.             {最新のNifty 課金情報(3か月分文)\n})});
  974.     case(@filechk( logd |  {\ACCOUNT.TXT}),
  975.         {Yes},{ madd(1,{             }|
  976.             {アクセス履歴情報\n})});
  977.     case(@filechk(logd | {\MAIL\MAIL.LOG}),
  978.         {Yes},{ madd(1,{             }|
  979.             {受信したメールの内容 \n})});
  980.  
  981.     f2 := hp;
  982.     loop({
  983.         %fname @tail(@head(f2,{,}),{/});
  984.         f2 := @body(f2,{,});
  985.         case(@filechk( logd |  {\HP\} | fname | {.TLT}),
  986.             {Yes},{oneHP(  fname )});
  987.         im( f2 <> {} )
  988.     });
  989.  
  990.     f2 := forum;
  991.     loop({
  992.         %fname @head(f2,{,});
  993.         f2 := @body(f2,{,});
  994.         case(@filechk( logd |  {\} | fname | {\title} | {.log}),
  995.             {Yes},{oneForum(  fname )});
  996.         im( f2 <> {} )
  997.     });
  998.     }; /* end of setdocm */
  999.  
  1000.     %dispboad{
  1001.     %line @memo(1,boadnum,1);
  1002.     %type @getchar(line,14,14);
  1003.     %name @getchar(line,3,8);
  1004.     case(type,
  1005.     {最新のNifty オ},{dispFile( logd |  {\TITLE.LOG})},
  1006.     {最新のNifty 課},{dispFile( logd |  {\BILL.LOG})},
  1007.     {アクセス履歴情},{dispFile( logd |  {\ACCOUNT.TXT})},
  1008.     {受信したメール},{
  1009.         %filename logd | {\MAIL\MAIL.LOG};
  1010.         case(@filechk(filename),{Yes},{boadmenu(filename,{Mail},name)},
  1011.             ,{select(
  1012.             {受信済のメールがありません。},10,{},{OK?},)
  1013.             })
  1014.     },
  1015.     {HPの最新オープ},{dispFile( logd | {\HP\} | name | {.TLT})},
  1016.     {HPの内容      },{
  1017.         %filename logd | {\HP\} | name | {.LOG};
  1018.         case(@filechk(filename),{Yes},{boadmenu(filename,{HP},name)},
  1019.             ,{select({このHPには}|
  1020.             {受信済のメッセージがありません。},10,{},{OK?},)
  1021.             })
  1022.     },
  1023.     {HPの最近の参照},{dispFile( logd | {\HP\} | name | {.USR})},
  1024.     {フォーラムのオ},{dispFile( logd | {\} | name | {\TITLE.LOG})},
  1025.     /*会議室*/      ,{
  1026.         case(@getchar(line,14,10),{フォーラム},{
  1027.         %num @case(@getchar(line,25,1),
  1028.                 { },{im({0}|@getchar(line,26,1))},
  1029.                    ,{getchar(line,25,2)}
  1030.         );
  1031.         %filename logd | {\} | name | {\} |
  1032.                     {MES} | num | {.LOG};
  1033.         case(@filechk(filename),{Yes},{boadmenu(filename,{Forum},name)},
  1034.             ,{select({この会議室には,}|
  1035.             {受信済のメッセージがありません。},10,{},{OK?},)
  1036.             })
  1037.         })
  1038.     }) /* end of case */
  1039.  
  1040.     };
  1041.  
  1042. footnote({受信文書の一覧を作成中です。});
  1043. setdocm;
  1044. mset(1,{r});
  1045. boadnum :=0;
  1046. loop({
  1047.   mopen(1,0,21,639,459);
  1048.   curline(boadnum);
  1049.   footnote({終了表示},{b});
  1050.   loop(  {waitx(1000);
  1051.       im(@xtype!=1 && @xtype<100)
  1052.      }
  1053.   );
  1054.   boadnum := @xlinenum;
  1055.   case(@xtype,
  1056.       1,{ CloseAllMemo;
  1057.       dispboad;
  1058.       im({Yes})
  1059.     },
  1060.     101,{ im({No}) },
  1061.     102,{ CloseAllMemo;
  1062.       dispboad;
  1063.       im({Yes})
  1064.     },
  1065.     201,{ im({No}) },
  1066.     202,{ CloseAllMemo;
  1067.       dispboad;
  1068.       im({Yes})
  1069.     },
  1070.        ,{ CloseAllMemo;
  1071.       im({Yes})
  1072.     }
  1073.   )
  1074. });
  1075. case(@mcheck != 0, {Yes}, { mclose(3) });
  1076. CloseAllMemo;
  1077. mset(2,{n});
  1078. mset(1,{n});
  1079. footnote({});
  1080.  
  1081. }; /* end of read doc */
  1082.  
  1083. /************************************************************************
  1084. *
  1085. *         送信文書の作成/更新処理
  1086. *
  1087. *************************************************************************/
  1088. %senddoc{
  1089.     var IndexLine[82];
  1090.     %FNameTop logd | {\UP\};
  1091.     %IndexFName FNameTop | {INDEX.TXT}; /* 制御ファイル */
  1092.     %SaveFName FNameTop | {SAVE.TXT};   /* 作業用のファイル*/
  1093.  
  1094.       /* set destination (21byte) 
  1095.                     */
  1096.     %SetDest{
  1097.     %DestMail{
  1098.         %name @input({送信先のIDを入れて下さい。}) ;
  1099.         case( @nochar(name)!=8,{Yes},{
  1100.             footnote({「}|name|{」は 英数字8文字でありません});
  1101.             DestMail
  1102.         },,{
  1103.             footnote({});
  1104.             im({Mail :} | name | {         })
  1105.         })
  1106.     };
  1107.  
  1108.     %DestHP{
  1109.         %name @input({HPの名前を入れて下さい。}) ;
  1110.         case( hp = @head(hp,{/}|name),{Yes},{
  1111.             footnote({「}|name|{」は 登録されていません});
  1112.             DestHP
  1113.         },,{
  1114.             footnote({});
  1115.             im({HP   :} | @getchar(name|{       },1,8)
  1116.              | {         })
  1117.         })
  1118.     };
  1119.  
  1120.     %DestForum{
  1121.         var boad[10];
  1122.         var org[10];
  1123.         %name @input({フォーラムの名前を入れて下さい。}) ;
  1124.         case( forum = @head(forum,name),{Yes},{
  1125.             footnote({「}|name|{」は 登録されていません});
  1126.             DestForum
  1127.         },,{
  1128.             %ans @input({「会議室番号」又は「会議室番号,コメント先」}) ;
  1129.             case(ans=@head(ans,{,}),
  1130.             {Yes},{ boad:=ans+0;
  1131.                 org :={     }
  1132.             },{No},{boad:=@head(ans,{,})+0;
  1133.                 org :=@head(ans,{,})+0
  1134.             });
  1135.             case( boad<1 || boad>20 ||
  1136.                 (org<>{     }) && (org<1 || org>99999),
  1137.             {Yes},{
  1138.                 footnote({会議室番号, コメント先がおかしいです});
  1139.                 DestForum;
  1140.             },,{
  1141.                 footnote({});
  1142.                 case(@nochar(boad),1,{boad:={0}|boad});
  1143.                 case(@nochar(org), 1,{org:={0000}|org},
  1144.                            2,{org:={000} |org},
  1145.                            3,{org:={00}  |org},
  1146.                            4,{org:={0}   |org});
  1147.                 im({Forum:} | 
  1148.                     @getchar(name|{       },1,8) | {/} |
  1149.                     boad | {/} | org ) 
  1150.             });
  1151.         })
  1152.     };
  1153.     
  1154.     select({何に使いますか?}
  1155.         ,99999,{im({})},
  1156.         {  メール  },                   DestMail,
  1157.         {  HPへのアップ  },           DestHP,
  1158.         {  会議室へのアップ  },         DestForum,
  1159.         {  メインメニューに戻る },     {im({})});
  1160.     };
  1161.  
  1162.     %ChgIndex{[Proc]
  1163.     var WorkLine[82];
  1164.     /*display({Change Index 1}|SaveFName);*/
  1165.     delfile(SaveFName);
  1166.     /*display({Change Index 2}|SaveFName);*/
  1167.     fopen(IndexFName);
  1168.     loop({  
  1169.         WorkLine := @fread;
  1170.         case(@getchar(IndexLine,4,3) = @getchar(WorkLine,4,3),
  1171.         {No},{  write(SaveFName,WorkLine );
  1172.             im({Yes})
  1173.         },{Yes},{ Proc;
  1174.             im({Yes})
  1175.         });
  1176.         im(WorkLine<>{})
  1177.     });
  1178.     fclose;
  1179.     copyfile(SaveFName,IndexFName);
  1180.     };
  1181.  
  1182.     %DelDoc{
  1183.     ChgIndex({
  1184.         %fno @head(@getchar(IndexLine,4,3),{ });
  1185.         delfile( FNameTop | {MES} | fno | {.TXT});
  1186.     })
  1187.     };
  1188.  
  1189.     %SetDoc{[type]
  1190.     ChgIndex({
  1191.         IndexLine := type | @getchar(IndexLine,3,80);
  1192.         write(SaveFName,IndexLine  );
  1193.     })
  1194.     };
  1195.  
  1196.     %SetTDoc{
  1197.     %Wtitle  @getchar(IndexLine,32,40);
  1198.     %Wtitle2 @input({題名を入れて下さい。},,Wtitle) ;
  1199.     case( Wtitle2 <>{} && (Wtitle2 | {\n})<>Wtitle,{Yes},{
  1200.         ChgIndex({
  1201.             IndexLine := @getchar(IndexLine,1,31) |
  1202.                 Wtitle2 | {\n};
  1203.             write(SaveFName,IndexLine  );
  1204.         })
  1205.     })
  1206.     };
  1207.  
  1208.     %SetDDoc{
  1209.     %Dest @SetDest;
  1210.     case( Dest<>{} && Dest<>@getchar(IndexLine,8,23),{Yes},{
  1211.         ChgIndex({
  1212.             IndexLine := @getchar(IndexLine,1,7) |
  1213.                 Dest | @getchar(IndexLine,31,80);
  1214.             write(SaveFName,IndexLine  );
  1215.         })
  1216.     })
  1217.     };
  1218.  
  1219.     %UpdDoc{
  1220.     %fno @head(@getchar(IndexLine,4,3),{ });
  1221.     %fname   FNameTop | {MES} | fno | {.TXT};
  1222.     mclear(2);
  1223.     mread(fname,2);
  1224.     mset(2,{w});
  1225.     mopen(2,0,21,639,459);
  1226.     footnote({更新破棄},{b});
  1227.     loop(  {waitx(1000);
  1228.         im(@xtype!=2 && @xtype!=101 && @xtype!=201 &&
  1229.                 @xtype!=102 && @xtype!=202)
  1230.     });
  1231.     %endtype @xtype;
  1232.     CloseAllMemo;
  1233.     mset(2,{n});
  1234.     case( endtype==101 || endtype==201,{Yes},{
  1235.         mwrite(fname,2)
  1236.     })
  1237.     };
  1238.  
  1239.     %OneDoc{
  1240.     case(IndexLine<>{},{Yes},{
  1241.         CloseAllMemo;
  1242.         select({どういう処理を行いますか? :}|
  1243.                 @head(@getchar(IndexLine,30,40),{\n})
  1244.             ,99999,{},
  1245.             {  削除する  },                 DelDoc,
  1246.             {  送信を保留しておく  },       {SetDoc({保})},
  1247.             {  次回の送信を予約する  },     {SetDoc({予})},
  1248.             {  題名を変更する },            SetTDoc,
  1249.             {  あて先を変更する },          SetDDoc,
  1250.             {  文書内容を変更する },        UpdDoc,
  1251.             {  何もしないで戻る },          )
  1252.     })
  1253.     
  1254.     };
  1255.  
  1256.     %OldDoc{
  1257.     
  1258.     case(@filechk(IndexFName),
  1259.     {No},{
  1260.         select({作成済の送信文書がありません。}
  1261.             ,20,{}, {  確認  },     ,)
  1262.     },{Yes},{
  1263.         loop({
  1264.           mclear(1);
  1265.           mread(IndexFName,1);
  1266.           mset(1,{r});
  1267.           mopen(1,0,21,639,459);
  1268.           footnote({終了選択},{b});
  1269.           loop(  {waitx(1000);
  1270.               im(@xtype!=1 && @xtype<100)
  1271.              }
  1272.           );
  1273.           IndexLine := @memo(1,@xlinenum,1);
  1274.           case(@xtype,
  1275.               1,{ 
  1276.             OneDoc;
  1277.             im({Yes})},
  1278.             102,{ 
  1279.             OneDoc;
  1280.             im({Yes})},
  1281.             202,{ 
  1282.             OneDoc;
  1283.             im({Yes})},
  1284.             101,{im({No}) },
  1285.             201,{im({No}) },
  1286.                ,{CloseAllMemo;
  1287.              im({Yes}) }
  1288.           )
  1289.         });
  1290.         case(@mcheck != 0, {Yes}, { mclose(3) });
  1291.         CloseAllMemo;
  1292.         mset(2,{n});
  1293.         mset(1,{n});
  1294.         footnote({});
  1295.  
  1296.     })
  1297.     }; /* end of Old Doc */
  1298.  
  1299.     %NewDoc2{[Dest,Title]
  1300.     var fno[10];
  1301.     var endtype[3];
  1302.     madd(1,{});
  1303.     mclear(2);
  1304.     madd(2,{});
  1305.     mset(2,{w});
  1306.     mopen(2,0,21,639,459);
  1307.     loop({
  1308.         footnote({終了},{b});
  1309.         loop(  {waitx(1000);
  1310.             im(@xtype!=2 && @xtype!=101 && @xtype!=201)
  1311.         });
  1312.         footnote({});
  1313.         endtype :=@select({このメッセージを送信予約しますか?。}
  1314.                 ,99999,{},
  1315.                 {送信予約する},                 {im({予})},
  1316.                 {送信予約しないが保存する},     {im({保})},
  1317.                 {保存しないで捨てる。},          {im({捨})},
  1318.                 {再度,編集に戻る。},            {im({戻})}
  1319.             );
  1320.         im(endtype = {戻})
  1321.     });
  1322.     CloseAllMemo;
  1323.     mset(2,{n});
  1324.     case( endtype={予} || endtype={保}   ,{Yes},{
  1325.         fno := 0;
  1326.         mkdir(logd , {UP});
  1327.         loop({ fno := fno+1;
  1328.             filechk(FNameTop | {MES} | fno | {.txt})
  1329.         });
  1330.         fno := @getchar(fno | {   },1,3);
  1331.  
  1332.         IndexLine := endtype | { } | fno | { } | Dest |
  1333.             {:} | Title | {\n};
  1334.         write( IndexFName , IndexLine);
  1335.         %fname   FNameTop | {MES} | fno | {.TXT};
  1336.         mwrite(fname,2);
  1337.     });
  1338.     
  1339.     }; /* end of New Doc2 */
  1340.  
  1341.     %NewDoc{
  1342.     var Title[82];
  1343.     %Dest @SetDest;
  1344.     case(Dest<>{},{Yes},{
  1345.         loop({
  1346.             Title :=@input({題名を入れて下さい。});
  1347.             case(@nochar(Title)>40,{Yes},{
  1348.             footnote({題名は, 全角20文字までです});
  1349.             im({Yes})
  1350.             },,{im({No})
  1351.             });
  1352.         });
  1353.         footnote({});
  1354.         case(Title<>{},{Yes},{
  1355.             NewDoc2(Dest,Title);
  1356.         })
  1357.     })
  1358.     };
  1359.  
  1360.     /* senddoc main start */
  1361.     select({どういう処理を行いますか?}
  1362.     ,99999,{},
  1363.     {  既存の送信文書の再処理  },   OldDoc,
  1364.     {  新しい送信文書の作成  },     NewDoc,
  1365.     {  メインメニューに戻る。  },   {} )
  1366.     
  1367. }; /* end of senddoc */
  1368.  
  1369. /************************************************************************
  1370. *
  1371. *         設定処理ルーチン群
  1372. *
  1373. *************************************************************************/
  1374. %setmodem{
  1375. /*    #MODEMX.PLP;*/
  1376.  
  1377. %SNDMSG{[FileName]
  1378. };
  1379.  
  1380. %setAT    {
  1381.     var type[10];
  1382.     SNDMSG({erande_f.snd});
  1383.     type:=
  1384.     @select({モデムのタイプは?},
  1385.         ,{im({01200n})},
  1386.         { 1200                   MNPなし },{im({01200n})},
  1387.         { 2400                   MNPなし },{im({02400n})},
  1388.         { 2400(端末速度2400)     MNPあり },{im({02400m})},
  1389.         { 2400(端末速度9600)     MNPあり },{im({09600m})},
  1390.         { 9600(端末速度19800)     MNPあり },{im({19200m})},
  1391.         { 14400(端末速度19200)   MNPあり },{im({19200m})},
  1392.         { 14400(端末速度38400)   MNPあり },{im({38400m})},
  1393.         { 14400(端末速度57600)   MNPあり },{im({57600m})}
  1394.         );
  1395.     SNDMSG({nyuryo_f.snd});
  1396.     footnote({ATコマンドを直接指定してネ☆});
  1397.     %a @input({ATコマンドを設定して下さい( 例:ATDPX3\N3\V1\Q3\J0)},,
  1398.             {AT}|@head(modem,{/}));
  1399.     case    (a <> {},{Yes},
  1400.         {case    (@getchar(a,1,2),{AT},
  1401.             {case(a=@head(a,{\}),{Yes},
  1402.                 {modem:={X3}|{/}|
  1403.                     @getchar(a,3,999)|{/AT直接指定_}|type;},                ,{modem:=@getchar(a,3,999)|{/}|
  1404.                     {/AT直接指定_}|type;})});
  1405.         },{No},{setAT});
  1406.     };
  1407.  
  1408. %FUJITSU{
  1409.     SNDMSG({erande_f.snd});
  1410.     select({モデムの機種を選んでネ☆  現在は『}|@ModemName|{』},
  1411.     ,,
  1412.  
  1413.     {富士通 内蔵1200},    {modem:={X3//内蔵1200_01200n}},
  1414.     {富士通 内蔵2400},    {modem:={X3/\N3\V1\Q3\J0%C0/内蔵2400_09600m}},
  1415.     {富士通 PM1200F },    {modem:={X3//PM1200F_01200n}},
  1416.     {富士通 PM2400F },    {modem:={X3/\N3\V1\Q2\J0%C0/PM2400F_09600m}},
  1417.     {富士通 PM2400FII},    {modem:={X3/\N7\V2\Q2\J0%C0/PM2400FII_09600m}},
  1418.     {富士通 OAMD-301 },    {modem:={X3&D2/\N3\V2\Q2\J0/OAMD-301_09600m}},
  1419.     {ATコマンド直設定 },    {setAT}
  1420.     )};
  1421.  
  1422. %AIWA    {
  1423.     SNDMSG({erande_f.snd});
  1424.     select({モデムの機種を選んでネ☆  現在は『}|@ModemName|{』},
  1425.     ,,
  1426.     { AIWA PV-A1200},    {modem:={X3//PV-A1200_01200n}},
  1427.     { AIWA PV-M12},        {modem:={X3/\N3\Q3\J0\V1/PV-M12_01200n}},
  1428.     { AIWA PV-A2400},    {modem:={X3&D2/&S1&C1/PV-A2400_02400n}},
  1429.     {AIWA PV-A2400MNP4},    {modem:={&D2/&M4\Q1/PV-A2400MNP4_09600m}},
  1430.     { AIWA PV-A24V42},    {modem:={X3&D2/\N3\Q3\J0/PV-A24V42_09600m}},
  1431.     { AIWA PV-M24},        {modem:={X3&D2/\N3\Q3\J0\V2/PV-M24_09600m}},
  1432.     { AIWA PV-M24M5},    {modem:={X3&D2/\N3\Q3\J0\V2/PV-M24M5_09600m}},
  1433.     { AIWA PV-M24B5},    {modem:={X3&D2/\N3\Q3\J0\V2%C0/PV-M24B5_09600m}},
  1434.     { AIWA PV-M24VM5},    {modem:={X3&D2/\N3\Q3\J0\V2%C0/PV-M24_09600m}},
  1435.     { AIWA PV-A24MNP5},    {modem:={X3&D2/\N3\Q3\J0%C0/PV-A24MNP5_09600m}},
  1436.     { AIWA PV-A96V5},    {modem:={X3&D2/\N3\Q3\J0\V2%C0/PV-A96V5_09600m}},
  1437.     {ATコマンド直設定 },    {setAT}
  1438.     )};
  1439.  
  1440. %EPSON    {
  1441.     SNDMSG({erande_f.snd});
  1442.     select({モデムの機種を選んでネ☆  現在は『}|@ModemName|{』},
  1443.     ,,
  1444.     { EPSON SR-120S },    {modem:={X3//SR-120S_01200n}},
  1445.     { EPSON SR-240S },    {modem:={X3//SR-120S_01200n}},
  1446.     { EPSON SR-120AT},    {modem:={X3/B1/SR-120S_01200n}},
  1447.     { EPSON SR-240AT},    {modem:={X3//SR-240AT_02400n}},
  1448.     { EPSON SR-240V },    {modem:={X3\V2/N1&K1%C0/SR-240V_09600m}},
  1449.     {ATコマンド直設定 },    {setAT}
  1450.     )};
  1451.  
  1452. %OMRON    {
  1453.     SNDMSG({erande_f.snd});
  1454.     select({モデムの機種を選んでネ☆  現在は『}|@ModemName|{』},
  1455.     ,,
  1456.     {OMRON MD1200},        {modem:={X3//MD1200_01200n}},
  1457.     {OMRON MD12FS},        {modem:={X3//MD12FS_01200n}},
  1458.     {OMRON MD2400A},    {modem:={X3/\N3\V1\Q2\J0/MD2400A_02400m}},
  1459.     {OMRON MD2400F},    {modem:={X3/\N3\V2\Q2\J0/MD2400F_02400m}},
  1460.     {OMRON MD24FB5V},    {modem:={X3/\N3\Q2\J0\V2%C0/MD24FB5V_09600m}},
  1461.     {OMRON MD24FP4},    {modem:={X3/\N3\Q2\J0/MD24FP4_02400m}},
  1462.     {OMRON MD24FP4II},    {modem:={X3&P2/\N3\Q2\J0/MD24FP4II_09600m}},
  1463.     {OMRON MD24FP5V},    {modem:={X3/\N3\Q2\J0\V2%C0/MD24FP5V_09600m}},
  1464.     {OMRON MD24FS4},    {modem:={X3/\N3\Q2\J0/MD24FS4_02400m}},
  1465.     {OMRON MD24FS5},    {modem:={X3/\N3\Q2\J0/MD24FS5_02400m}},
  1466.     {OMRON MD24FN5},    {modem:={X3/\N3\Q2\J0\V2/MD24FS4_02400m}},
  1467.     {OMRON MD24FS7},    {modem:={X3/\N3\Q2\J0\V2/MD24FS7_02400m}},
  1468.     {OMRON MD96FB5V},
  1469.     {modem:={X3&E0/\N3&M5*C1\D0\J0\V1/MD96FB5V_09600m}},
  1470.     {OMRON MD96FS5},
  1471.     {modem:={X3&E0/\N3&M5*C1\D0\J0\V1/MD96FS5_09600m}},
  1472.     {ATコマンド直設定 },    {setAT}
  1473.     )};
  1474.  
  1475. %INTEGRAN{
  1476.     SNDMSG({erande_f.snd});
  1477.     select({モデムの機種を選んでネ☆  現在は『}|@ModemName|{』},
  1478.     ,,
  1479.     {INTEGRAN 通信POCO },{modem:={X3/\V1%C0/INTEGURAN_09600m}},
  1480.     {通信POCO(端末固定)},{modem:={X3/\N3\J0\V1%C0/INTEGRAN_09600m}},
  1481.     { ATコマンド直設定 },    {setAT}
  1482.     )};
  1483.  
  1484. %OKI{
  1485.     SNDMSG({erande_f.snd});
  1486.     select({モデムの機種を選んでネ☆  現在は『}|@ModemName|{』},
  1487.     ,,
  1488.     {PCLINK224/V42.bis },{modem:={X3/\N3\J0\V1&E0W2/PCLINK224_09600m}},
  1489.     {PCLINK296/V42.bis },{modem:={X3/\N3\J0\V1&E0W2/PCLINK296_09600m}},
  1490.     { ATコマンド直設定 },    {setAT}
  1491.     )};
  1492.  
  1493. %NEC    {
  1494.     SNDMSG({erande_f.snd});
  1495.     select({モデムの機種を選んでネ☆  現在は『}|@ModemName|{』},
  1496.     ,,
  1497.     {NEC COMSTAR   1212AT},{modem:={X/&C1/COMSTAR 1212AT_01200n}},
  1498.     {NEC COMSTARZ CULB 24/4},{modem:={X3/\V1%X0/COMSTAR CULB 24-4_02400m}},
  1499.     {NEC COMSTARZ  2424/4},{modem:={X3/\V1%X0/COMSTAR 2424-4_02400m}},
  1500.     {NEC COMSTARZ  2424/5},{modem:={X3/\V1%X0/COMSTAR 2424-5_02400m}},
  1501.     {NEC COMSTAR 2424AT/4},
  1502.     {modem:={X3/Q4\T5&D2&G0&S0/COMSTAR 2424AT4_02400m}},
  1503.     {NEC COMSTAR 2424AT/5},
  1504.     {modem:={X3/Q4\T5&D2&G0&S0/COMSTAR 2424AT5_02400m}},
  1505.     {  ATコマンド直設定 },{setAT}
  1506.     )};
  1507.  
  1508. %SONY    {
  1509.     SNDMSG({erande_f.snd});
  1510.     select({モデムの機種を選んでネ☆  現在は『}|@ModemName|{』},
  1511.     ,,
  1512.     {SONY IT-V1200},{modem:={X3//IT-V1200_01200n}},
  1513.     {SONY IT-V2400},{modem:={X3//IT-V2400_02400m}},
  1514.     {ATコマンド直設定 },{setAT}
  1515.     )};
  1516.  
  1517. %MICROCORE{
  1518.     SNDMSG({erande_f.snd});
  1519.     select({モデムの機種を選んでネ☆  現在は『}|@ModemName|{』},
  1520.     ,,
  1521.     {MICROCORE MC24PA5},{modem:={X3/\N3\Q2\J0\X1%C0/MC24PA5_09600m}},
  1522.     {},{},
  1523.     {ATコマンド直設定 },{setAT}
  1524.     )};
  1525.  
  1526. %setMODEM{
  1527.     %ModemName
  1528.         {case(modem,{},{im({未設定})},,{head(@tail(modem,{/}),{_})})};
  1529.     SNDMSG({erande_f.snd});
  1530.     footnote({モデム・メーカー選択処理中,,,♪});
  1531.     select({モデム・メーカーを選んでネ☆},
  1532.     ,,
  1533.     {  FUJITSU  },{FUJITSU},    {     AIWA     },{AIWA},
  1534.     {    OMRON    },{OMRON},    {    EPSON    },{EPSON},
  1535.     {      NEC      },{NEC},    {     SONY     },{SONY},
  1536.     {   マイクロコア   },{MICROCORE},{      OKI     },{OKI},
  1537.     {   インテグラン   },{INTEGRAN},{ ATコマンド直設定 },{setAT}
  1538.     )};
  1539.  
  1540. setMODEM;
  1541.  
  1542. }; /* end of setmodem */
  1543.  
  1544.  
  1545. %settelno{
  1546. /*    #SETPOINT.PLP;*/
  1547.  
  1548. %road112{
  1549.  
  1550. /*    ROAD1の電話番号一覧選択    */
  1551. %setTEL    {
  1552.     SNDMSG({nyuryo_f.snd});
  1553.     footnote({ROAD1 }|BPS|{BPSアクセス・ポイントの電話番号を直接入力処理中,,,♪});
  1554.     %a @input({ROAD1の電話番号を入力してネ☆(入力後は「リターンキー↓」)},,
  1555.             @head(ROAD1,{/}));
  1556.     case    (a<>{},    {Yes},{ROAD1:=@getchar(a,1,80)|{/}|BPS;},
  1557.             {No},{setTEL});
  1558.     };
  1559.  
  1560. %HOKKAI1{
  1561.     SNDMSG({erande_f.snd});
  1562.     select({ROAD1の電話番号を選択してネ☆(現在は『}|ROAD1|{』)},
  1563.         ,,
  1564.         { 札  幌 },{ROAD1:={011-898-4909/1200}},
  1565.         { 函  館 },{ROAD1:={0138-54-7061/1200}},
  1566.         { 室  蘭 },{ROAD1:={0143-43-1631/1200}},
  1567.         { 釧  路 },{ROAD1:={0154-22-6177/1200}},
  1568.         { 帯  広 },{ROAD1:={0155-25-7311/1200}},
  1569.         { 北  見 },{ROAD1:={0157-24-4282/1200}},
  1570.         { 旭  川 },{ROAD1:={0166-25-7306/1200}},
  1571.         {直接入力},{setTEL}
  1572.         );
  1573.     };
  1574.  
  1575. %TOHOKU1{
  1576.     SNDMSG({erande_f.snd});
  1577.     select({ROAD1の電話番号を選択してネ☆(現在は『}|ROAD1|{』)},
  1578.         ,,
  1579.         { 弘  前 },{ROAD1:={0172-37-4511/1200}},
  1580.         { 青  森 },{ROAD1:={0177-29-1944/1200}},
  1581.         { 八  戸 },{ROAD1:={0178-24-4065/1200}},
  1582.         { 秋  田 },{ROAD1:={0188-31-4161/1200}},
  1583.         { 盛  岡 },{ROAD1:={0196-51-4222/1200}},
  1584.         { 北  上 },{ROAD1:={0197-63-7301/1200}},
  1585.         { 仙  台 },{ROAD1:={022-221-5618/1200}},
  1586.         { 酒  田 },{ROAD1:={0234-24-9571/1200}},
  1587.         { 山  形 },{ROAD1:={0236-31-2448/1200}},
  1588.         {会津若松},{ROAD1:={0242-24-3509/1200}},
  1589.         { 福  島 },{ROAD1:={0245-22-5951/1200}},
  1590.         { いわき },{ROAD1:={0246-23-4576/1200}},
  1591.         { 郡  山 },{ROAD1:={0249-25-0902/1200}},
  1592.         {直接入力},{setTEL}
  1593.         );
  1594.     };
  1595.  
  1596. %NKANTO1{
  1597.     SNDMSG({erande_f.snd});
  1598.     select({ROAD1の電話番号を選択してネ☆(現在は『}|ROAD1|{』)},
  1599.         ,,
  1600.         { 前  橋 },{ROAD1:={0272-52-9753/1200}},
  1601.         { 高  崎 },{ROAD1:={0273-27-9174/1200}},
  1602.         { 館  林 },{ROAD1:={0276-75-4825/1200}},
  1603.         { 小  山 },{ROAD1:={0285-23-1130/1200}},
  1604.         { 宇都宮 },{ROAD1:={0286-38-9951/1200}},
  1605.         { 水  戸 },{ROAD1:={0292-27-6929/1200}},
  1606.         { 日  立 },{ROAD1:={0294-21-8413/1200}},
  1607.         { 筑  波 },{ROAD1:={0298-55-4330/1200}},
  1608.         { 所  沢 },{ROAD1:={0429-28-0812/1200}},
  1609.         { 浦  和 },{ROAD1:={048-825-7942/1200}},
  1610.         { 熊  谷 },{ROAD1:={0485-24-7362/1200}},
  1611.         { 越  谷 },{ROAD1:={0489-62-2680/1200}},
  1612.         { 川  越 },{ROAD1:={0492-41-5381/1200}},
  1613.         { 本  庄 },{ROAD1:={0495-24-2175/1200}},
  1614.         {直接入力},{setTEL}
  1615.         );
  1616.     };
  1617.  
  1618. %SKANTO1{
  1619.     SNDMSG({erande_f.snd});
  1620.     select({ROAD1の電話番号を選択してネ☆(現在は『}|ROAD1|{』)},
  1621.         ,,
  1622.         { 東  京 },{ROAD1:={03-3739-9241/1200}},
  1623.         { 稲  城 },{ROAD1:={0423-78-6273/1200}},
  1624.         { 調  布 },{ROAD1:={0424-81-0556/1200}},
  1625.         { 立  川 },{ROAD1:={0425-24-4212/1200}},
  1626.         { 町  田 },{ROAD1:={0427-99-2375/1200}},
  1627.         { 千  葉 },{ROAD1:={043-246-8131/1200}},
  1628.         { 君  津 },{ROAD1:={0439-52-8290/1200}},
  1629.         { 川  崎 },{ROAD1:={044-755-4911/1200}},
  1630.         { 横  浜 },{ROAD1:={045-316-4201/1200}},
  1631.         { 厚  木 },{ROAD1:={0462-29-6017/1200}},
  1632.         { 平  塚 },{ROAD1:={0463-21-5841/1200}},
  1633.         { 小田原 },{ROAD1:={0465-23-1562/1200}},
  1634.         { 藤  沢 },{ROAD1:={0466-22-9882/1200}},
  1635.         { 横須賀 },{ROAD1:={0468-27-0412/1200}},
  1636.         {   柏   },{ROAD1:={0471-46-3153/1200}},
  1637.         { 松  戸 },{ROAD1:={0473-66-2621/1200}},
  1638.         { 船  橋 },{ROAD1:={0474-37-5241/1200}},
  1639.         {直接入力},{setTEL}
  1640.         );
  1641.     };
  1642.  
  1643. %HOKURIK1{
  1644.     SNDMSG({erande_f.snd});
  1645.     select({ROAD1の電話番号を選択してネ☆(現在は『}|ROAD1|{』)},
  1646.         ,,
  1647.         { 新  潟 },{ROAD1:={025-246-3613/1200}},
  1648.         { 上  越 },{ROAD1:={0255-26-3680/1200}},
  1649.         { 長  岡 },{ROAD1:={0258-32-2521/1200}},
  1650.         { 長  野 },{ROAD1:={0262-26-9852/1200}},
  1651.         { 松  本 },{ROAD1:={0263-32-8903/1200}},
  1652.         { 諏  訪 },{ROAD1:={0266-52-8377/1200}},
  1653.         { 佐  久 },{ROAD1:={0267-63-3629/1200}},
  1654.         { 金  沢 },{ROAD1:={0762-64-1390/1200}},
  1655.         { 富  山 },{ROAD1:={0764-42-6437/1200}},
  1656.         { 福  井 },{ROAD1:={0776-24-8420/1200}},
  1657.         {直接入力},{setTEL}
  1658.         );
  1659.     };
  1660.  
  1661.  
  1662. %TYUBU1{
  1663.     SNDMSG({erande_f.snd});
  1664.     select({ROAD1の電話番号を選択してネ☆(現在は『}|ROAD1|{』)},
  1665.         ,,
  1666.         { 名古屋 },{ROAD1:={052-231-2579/1200}},
  1667.         { 浜  松 },{ROAD1:={053-456-8845/1200}},
  1668.         { 豊  橋 },{ROAD1:={0532-53-7159/1200}},
  1669.         { 静  岡 },{ROAD1:={054-252-2494/1200}},
  1670.         { 甲  府 },{ROAD1:={0552-33-9161/1200}},
  1671.         { 沼  津 },{ROAD1:={0559-23-5038/1200}},
  1672.         { 岡  崎 },{ROAD1:={0564-26-0964/1200}},
  1673.         { 豊  田 },{ROAD1:={0565-27-9688/1200}},
  1674.         { 刈  谷 },{ROAD1:={0566-25-2139/1200}},
  1675.         { 春日井 },{ROAD1:={0568-51-3542/1200}},
  1676.         { 高  山 },{ROAD1:={0577-32-8607/1200}},
  1677.         { 岐  阜 },{ROAD1:={0582-53-9455/1200}},
  1678.         { 大  垣 },{ROAD1:={0584-81-4491/1200}},
  1679.         { 一  宮 },{ROAD1:={0586-46-0704/1200}},
  1680.         {   津   },{ROAD1:={0592-23-1418/1200}},
  1681.         { 四日市 },{ROAD1:={0593-53-8249/1200}},
  1682.         { 伊  勢 },{ROAD1:={0596-27-5547/1200}},
  1683.         {直接入力},{setTEL}
  1684.         );
  1685.     };
  1686.  
  1687. %KINKI1{
  1688.     SNDMSG({erande_f.snd});
  1689.     select({ROAD1の電話番号を選択してネ☆(現在は『}|ROAD1|{』)},
  1690.         ,,
  1691.         { 大  阪 },{ROAD1:={06-947-5460/1200}},
  1692.         { 枚  方 },{ROAD1:={0720-46-2390/1200}},
  1693.         {   堺   },{ROAD1:={0722-27-5052/1200}},
  1694.         { 茨  木 },{ROAD1:={0726-24-6544/1200}},
  1695.         { 池  田 },{ROAD1:={0727-53-8834/1200}},
  1696.         { 和歌山 },{ROAD1:={0734-74-8155/1200}},
  1697.         { 奈  良 },{ROAD1:={0742-34-3639/1200}},
  1698.         { 彦  根 },{ROAD1:={0749-24-7298/1200}},
  1699.         { 京  都 },{ROAD1:={075-255-6069/1200}},
  1700.         { 福知山 },{ROAD1:={0773-24-1507/1200}},
  1701.         { 大  津 },{ROAD1:={0775-23-5673/1200}},
  1702.         { 神  戸 },{ROAD1:={078-392-7398/1200}},
  1703.         { 姫  路 },{ROAD1:={0792-88-7931/1200}},
  1704.         { 加古川 },{ROAD1:={0794-35-7229/1200}},
  1705.         { 西  宮 },{ROAD1:={0798-66-4435/1200}},
  1706.         {直接入力},{setTEL}
  1707.         );
  1708.     };
  1709.  
  1710. %CHUGOKU1{
  1711.     SNDMSG({erande_f.snd});
  1712.     select({ROAD1の電話番号を選択してネ☆(現在は『}|ROAD1|{』)},
  1713.         ,,
  1714.         { 広  島 },{ROAD1:={082-223-7643/1200}},
  1715.         { 下  関 },{ROAD1:={0832-32-5101/1200}},
  1716.         { 徳  山 },{ROAD1:={0834-31-5321/1200}},
  1717.         { 宇  部 },{ROAD1:={0836-22-4845/1200}},
  1718.         { 山  口 },{ROAD1:={0839-21-2765/1200}},
  1719.         { 福  山 },{ROAD1:={0849-31-7240/1200}},
  1720.         { 松  江 },{ROAD1:={0852-26-9312/1200}},
  1721.         { 鳥  取 },{ROAD1:={0857-24-5146/1200}},
  1722.         { 米  子 },{ROAD1:={0859-33-0061/1200}},
  1723.         { 岡  山 },{ROAD1:={086-226-5544/1200}},
  1724.         {直接入力},{setTEL}
  1725.         );
  1726.     };
  1727.  
  1728. %SHIKOKU1{
  1729.     SNDMSG({erande_f.snd});
  1730.     select({ROAD1の電話番号を選択して☆ネ(現在は『}|ROAD1|{』)},
  1731.         ,,
  1732.         { 高  松 },{ROAD1:={0878-51-0462/1200}},
  1733.         { 徳  島 },{ROAD1:={0886-55-2840/1200}},
  1734.         { 高  知 },{ROAD1:={0888-23-5477/1200}},
  1735.         { 松  山 },{ROAD1:={0899-33-9914/1200}},
  1736.         {直接入力},{setTEL}
  1737.         );
  1738.     };
  1739.  
  1740. %KYUSYU1{
  1741.     SNDMSG({erande_f.snd});
  1742.     select({ROAD1の電話番号を選択してネ☆(現在は『}|ROAD1|{』)},
  1743.         ,,
  1744.         { 福  岡 },{ROAD1:={092-473-6576/1200}},
  1745.         { 北九州 },{ROAD1:={093-511-2421/1200}},
  1746.         { 久留米 },{ROAD1:={0942-37-4035/1200}},
  1747.         { 大牟田 },{ROAD1:={0944-52-7870/1200}},
  1748.         { 佐  賀 },{ROAD1:={0952-25-3750/1200}},
  1749.         { 佐世保 },{ROAD1:={0956-46-1981/1200}},
  1750.         { 長  崎 },{ROAD1:={0958-24-4967/1200}},
  1751.         { 熊  本 },{ROAD1:={096-324-6502/1200}},
  1752.         { 大  分 },{ROAD1:={0975-34-3724/1200}},
  1753.         { 宮  崎 },{ROAD1:={0985-29-4430/1200}},
  1754.         { 鹿児島 },{ROAD1:={0992-24-4830/1200}},
  1755.         {直接入力},{setTEL}
  1756.         );
  1757.     };
  1758.  
  1759. %OKINAWA1{
  1760.     SNDMSG({erande_f.snd});
  1761.     select({ROAD1の電話番号を選択してネ☆(現在は『}|ROAD1|{』)},
  1762.         ,,
  1763.         { 那  覇 },{ROAD1:={098-863-4779/1200}},
  1764.         {直接入力},{setTEL}
  1765.         );
  1766.     };
  1767.  
  1768.  
  1769. %setNODE1{
  1770.     SNDMSG({erande_f.snd});
  1771.     footnote({ROAD1アクセス・ポイントの電話番号を設定処理中,,,♪});
  1772.     select({    ROAD1アクセス・ポイント地域を選択してネ☆},
  1773.         ,,
  1774.         { 北海道 },{HOKKAI1},    { 東  北 },{TOHOKU1},
  1775.         { 北関東 },{NKANTO1},    { 南関東 },{SKANTO1},
  1776.         { 北信越 },{HOKURIK1},    { 中  部 },{TYUBU1},
  1777.         { 近  畿 },{KINKI1},    { 中  国 },{CHUGOKU1},
  1778.         { 四  国 },{SHIKOKU1},    { 九  州 },{KYUSYU1},
  1779.         { 沖  縄 },{OKINAWA1},
  1780.         {直接入力},{setTEL}
  1781.         );
  1782.     };
  1783.  
  1784. setNODE1;
  1785.  
  1786.  
  1787. };  /* end of road112 */
  1788.  
  1789. %road124{
  1790.  
  1791. /*    ROAD1の電話番号一覧選択    */
  1792. %setTEL    {
  1793.     SNDMSG({nyuryo_f.snd});
  1794.     footnote({ROAD1 }|BPS|{BPSアクセス・ポイントの電話番号を直接入力処理中,,,♪});
  1795.     %a @input({ROAD1の電話番号を入力してネ☆(入力後は「リターンキー↓」)},,
  1796.             @head(ROAD1,{/}));
  1797.     case    (a<>{},    {Yes},{ROAD1:=@getchar(a,1,80)|{/}|BPS;},
  1798.             {No},{setTEL});
  1799.     };
  1800.  
  1801. %HOKKAI2{
  1802.     SNDMSG({erande_f.snd});
  1803.     select({ROAD1の電話番号を選択してネ☆(現在は『}|ROAD1|{』)},
  1804.         ,,
  1805.         { 札  幌 },{ROAD1:={011-898-4965/2400}},
  1806.         { 函  館 },{ROAD1:={0138-51-7964/2400}},
  1807.         { 釧  路 },{ROAD1:={0154-22-9459/2400}},
  1808.         { 帯  広 },{ROAD1:={0155-25-7181/2400}},
  1809.         { 北  見 },{ROAD1:={0157-23-8051/2400}},
  1810.         { 旭  川 },{ROAD1:={0166-26-9630/2400}},
  1811.         {直接入力},{setTEL}
  1812.         );
  1813.     };
  1814.  
  1815. %TOHOKU2{
  1816.     SNDMSG({erande_f.snd});
  1817.     select({ROAD1の電話番号を選択してネ☆(現在は『}|ROAD1|{』)},
  1818.         ,,
  1819.         { 青  森 },{ROAD1:={0177-29-1951/2400}},
  1820.         { 八  戸 },{ROAD1:={0178-45-4971/2400}},
  1821.         { 秋  田 },{ROAD1:={0188-31-4120/2400}},
  1822.         { 盛  岡 },{ROAD1:={0196-51-1101/2400}},
  1823.         { 仙  台 },{ROAD1:={022-266-7814/2400}},
  1824.         { 酒  田 },{ROAD1:={0234-26-7035/2400}},
  1825.         { 山  形 },{ROAD1:={0236-32-4457/2400}},
  1826.         {会津若松},{ROAD1:={0242-24-9202/2400}},
  1827.         { 福  島 },{ROAD1:={0245-23-2971/2400}},
  1828.         { いわき },{ROAD1:={0246-22-9581/2400}},
  1829.         { 郡  山 },{ROAD1:={0249-25-9384/2400}},
  1830.         {直接入力},{setTEL}
  1831.         );
  1832.     };
  1833.  
  1834. %NKANTO2{
  1835.     SNDMSG({erande_f.snd});
  1836.     select({ROAD1の電話番号を選択してネ☆(現在は『}|ROAD1|{』)},
  1837.         ,,
  1838.         { 前  橋 },{ROAD1:={0272-54-0900/2400}},
  1839.         { 高  崎 },{ROAD1:={0273-27-8335/2400}},
  1840.         { 館  林 },{ROAD1:={0276-75-0553/2400}},
  1841.         { 小  山 },{ROAD1:={0285-24-5601/2400}},
  1842.         { 宇都宮 },{ROAD1:={0286-38-9909/2400}},
  1843.         { 水  戸 },{ROAD1:={0292-21-6901/2400}},
  1844.         { 筑  波 },{ROAD1:={0298-55-2291/2400}},
  1845.         { 所  沢 },{ROAD1:={0429-28-8218/2400}},
  1846.         { 浦  和 },{ROAD1:={048-825-5700/2400}},
  1847.         { 熊  谷 },{ROAD1:={0485-24-1831/2400}},
  1848.         { 越  谷 },{ROAD1:={0489-66-8001/2400}},
  1849.         { 川  越 },{ROAD1:={0492-41-7051/2400}},
  1850.         {直接入力},{setTEL}
  1851.         );
  1852.     };
  1853.  
  1854. %SKANTO2{
  1855.     SNDMSG({erande_f.snd});
  1856.     select({ROAD1の電話番号を選択してネ☆(現在は『}|ROAD1|{』)},
  1857.         ,,
  1858.         { 東  京 },{ROAD1:={03-3739-9120/2400}},
  1859.         { 稲  城 },{ROAD1:={0423-78-6514/2400}},
  1860.         { 調  布 },{ROAD1:={0424-89-3450/2400}},
  1861.         { 立  川 },{ROAD1:={0425-22-0178/2400}},
  1862.         { 町  田 },{ROAD1:={0427-99-2148/2400}},
  1863.         { 千  葉 },{ROAD1:={043-248-9691/2400}},
  1864.         { 川  崎 },{ROAD1:={044-752-4421/2400}},
  1865.         { 横  浜 },{ROAD1:={045-323-2852/2400}},
  1866.         { 厚  木 },{ROAD1:={0462-29-5116/2400}},
  1867.         { 平  塚 },{ROAD1:={0463-21-5846/2400}},
  1868.         { 小田原 },{ROAD1:={0465-24-1602/2400}},
  1869.         { 藤  沢 },{ROAD1:={0466-22-1037/2400}},
  1870.         { 横須賀 },{ROAD1:={0468-24-8078/2400}},
  1871.         {   柏   },{ROAD1:={0471-46-4175/2400}},
  1872.         { 松  戸 },{ROAD1:={0473-66-7641/2400}},
  1873.         { 船  橋 },{ROAD1:={0474-37-5392/2400}},
  1874.         {直接入力},{setTEL}
  1875.         );
  1876.     };
  1877.  
  1878. %HOKURIK2{
  1879.     SNDMSG({erande_f.snd});
  1880.     select({ROAD1の電話番号を選択してネ☆(現在は『}|ROAD1|{』)},
  1881.         ,,
  1882.         { 新  潟 },{ROAD1:={025-244-4125/2400}},
  1883.         { 長  野 },{ROAD1:={0262-26-1521/2400}},
  1884.         { 松  本 },{ROAD1:={0263-32-9921/2400}},
  1885.         { 金  沢 },{ROAD1:={0762-63-7131/2400}},
  1886.         { 富  山 },{ROAD1:={0764-42-7922/2400}},
  1887.         { 福  井 },{ROAD1:={0776-24-9986/2400}},
  1888.         {直接入力},{setTEL}
  1889.         );
  1890.     };
  1891.  
  1892. %TYUBU2{
  1893.     SNDMSG({erande_f.snd});
  1894.     select({ROAD1の電話番号を選択してネ☆(現在は『}|ROAD1|{』)},
  1895.         ,,
  1896.         { 名古屋 },{ROAD1:={052-204-2261/2400}},
  1897.         { 浜  松 },{ROAD1:={053-456-9812/2400}},
  1898.         { 豊  橋 },{ROAD1:={0532-56-0712/2400}},
  1899.         { 静  岡 },{ROAD1:={054-273-1704/2400}},
  1900.         { 甲  府 },{ROAD1:={0552-37-9119/2400}},
  1901.         { 沼  津 },{ROAD1:={0559-24-6646/2400}},
  1902.         { 岡  崎 },{ROAD1:={0564-23-8848/2400}},
  1903.         { 豊  田 },{ROAD1:={0565-26-4360/2400}},
  1904.         { 刈  谷 },{ROAD1:={0566-25-7008/2400}},
  1905.         { 春日井 },{ROAD1:={0568-51-3601/2400}},
  1906.         { 岐  阜 },{ROAD1:={0582-53-9691/2400}},
  1907.         { 大  垣 },{ROAD1:={0584-82-0445/2400}},
  1908.         { 一  宮 },{ROAD1:={0586-46-2115/2400}},
  1909.         {   津   },{ROAD1:={0592-23-1415/2400}},
  1910.         { 四日市 },{ROAD1:={0593-53-1582/2400}},
  1911.         {直接入力},{setTEL}
  1912.         );
  1913.     };
  1914.  
  1915. %KINKI2{
  1916.     SNDMSG({erande_f.snd});
  1917.     select({ROAD1の電話番号を選択してネ☆(現在は『}|ROAD1|{』)},
  1918.         ,,
  1919.         { 大  阪 },{ROAD1:={06-949-2572/2400}},
  1920.         {   堺   },{ROAD1:={0722-22-8540/2400}},
  1921.         { 和歌山 },{ROAD1:={0734-74-8163/2400}},
  1922.         { 奈  良 },{ROAD1:={0742-36-0857/2400}},
  1923.         { 京  都 },{ROAD1:={075-255-0524/2400}},
  1924.         { 大  津 },{ROAD1:={0775-23-5416/2400}},
  1925.         { 神  戸 },{ROAD1:={078-332-2127/2400}},
  1926.         { 姫  路 },{ROAD1:={0792-88-9744/2400}},
  1927.         { 加古川 },{ROAD1:={0794-35-7944/2400}},
  1928.         {直接入力},{setTEL}
  1929.         );
  1930.     };
  1931.  
  1932. %CHUGOKU2{
  1933.     SNDMSG({erande_f.snd});
  1934.     select({ROAD1の電話番号を選択してネ☆(現在は『}|ROAD1|{』)},
  1935.         ,,
  1936.         { 広  島 },{ROAD1:={082-223-5749/2400}},
  1937.         { 徳  山 },{ROAD1:={0834-32-5461/2400}},
  1938.         { 宇  部 },{ROAD1:={0836-22-6613/2400}},
  1939.         { 山  口 },{ROAD1:={0839-24-9485/2400}},
  1940.         { 松  江 },{ROAD1:={0852-26-5771/2400}},
  1941.         { 鳥  取 },{ROAD1:={0857-22-5121/2400}},
  1942.         { 岡  山 },{ROAD1:={086-226-6241/2400}},
  1943.         {直接入力},{setTEL}
  1944.         );
  1945.     };
  1946.  
  1947. %SHIKOKU2{
  1948.     SNDMSG({erande_f.snd});
  1949.     select({ROAD1の電話番号を選択してネ☆(現在は『}|ROAD1|{』)},
  1950.         ,,
  1951.         { 高  松 },{ROAD1:={0878-23-4667/2400}},
  1952.         { 徳  島 },{ROAD1:={0886-55-9450/2400}},
  1953.         { 高  知 },{ROAD1:={0888-24-6403/2400}},
  1954.         { 松  山 },{ROAD1:={0899-32-9640/2400}},
  1955.         {直接入力},{setTEL}
  1956.         );
  1957.     };
  1958.  
  1959. %KYUSYU2{
  1960.     SNDMSG({erande_f.snd});
  1961.     select({ROAD1の電話番号を選択してネ☆(現在は『}|ROAD1|{』)},
  1962.         ,,
  1963.         { 福  岡 },{ROAD1:={092-474-3708/2400}},
  1964.         { 北九州 },{ROAD1:={093-531-7320/2400}},
  1965.         { 久留米 },{ROAD1:={0942-37-3977/2400}},
  1966.         { 佐  賀 },{ROAD1:={0952-25-2110/2400}},
  1967.         { 長  崎 },{ROAD1:={0958-24-5750/2400}},
  1968.         { 熊  本 },{ROAD1:={096-324-1911/2400}},
  1969.         { 大  分 },{ROAD1:={0975-37-4480/2400}},
  1970.         { 宮  崎 },{ROAD1:={0985-29-9034/2400}},
  1971.         { 鹿児島 },{ROAD1:={0992-24-4848/2400}},
  1972.         {直接入力},{setTEL}
  1973.         );
  1974.     };
  1975.  
  1976. %OKINAWA2{
  1977.     SNDMSG({erande_f.snd});
  1978.     select({ROAD1の電話番号を選択してネ☆(現在は『}|ROAD1|{』)},
  1979.         ,,
  1980.         { 那  覇 },{ROAD1:={098-861-7176/2400}},
  1981.         {直接入力},{setTEL}
  1982.         );
  1983.     };
  1984.  
  1985. %setNODE2{
  1986.     SNDMSG({erande_f.snd});
  1987.     footnote({ROAD1アクセスポイントの電話番号を設定処理中,,,♪});
  1988.     select({    ROAD1アクセス・ポイント地域を選択してネ☆},
  1989.         ,,
  1990.         { 北海道 },{HOKKAI2},    { 東  北 },{TOHOKU2},
  1991.         { 北関東 },{NKANTO2},    { 南関東 },{SKANTO2},
  1992.         { 北信越 },{HOKURIK2},    { 中  部 },{TYUBU2},
  1993.         { 近  畿 },{KINKI2},    { 中  国 },{CHUGOKU2},
  1994.         { 四  国 },{SHIKOKU2},    { 九  州 },{KYUSYU2},
  1995.         { 沖  縄 },{OKINAWA2},
  1996.         {直接入力},{setTEL}
  1997.         );
  1998.     };
  1999.  
  2000. setNODE2;
  2001.  
  2002.  
  2003. }; /* end of road124 */
  2004.  
  2005. %road2{
  2006.  
  2007. /*    ROAD2の電話番号一覧選択    */
  2008. %setTEL    {
  2009.     SNDMSG({erande_f.snd});
  2010.     footnote({ROAD2 アクセス・ポイントの電話番号を直接入力処理中,,,♪});
  2011.     %a @input({ROAD2の電話番号を入力してネ☆(入力後は「リターンキー↓」)},,
  2012.         ROAD2);
  2013.     case    (a<>{},    {Yes},{ROAD2:=@getchar(a,1,80)},
  2014.             {No},{setTEL});
  2015.     };
  2016.  
  2017. %HOKKAIDO{
  2018.     SNDMSG({erande_f.snd});
  2019.     select({ROAD2の電話番号を選択してネ☆(現在は『}|ROAD2|{』)},
  2020.         ,,
  2021.         { 札  幌 },{ROAD2:={011-898-3344}},
  2022.         { 滝  川 },{ROAD2:={0125-22-4126}},
  2023.         { 函  館 },{ROAD2:={0138-56-8214}},
  2024.         { 室  蘭 },{ROAD2:={0143-43-2271}},
  2025.         { 苫小牧 },{ROAD2:={0144-36-6081}},
  2026.         { 網  走 },{ROAD2:={0152-44-9728}},
  2027.         { 釧  路 },{ROAD2:={0154-22-1726}},
  2028.         { 帯  広 },{ROAD2:={0155-25-7511}},
  2029.         { 北  見 },{ROAD2:={0157-25-9103}},
  2030.         { 旭  川 },{ROAD2:={0166-24-6801}},
  2031.         {直接入力},{setTEL}
  2032.         );
  2033.     };
  2034.  
  2035. %TOHOKU    {
  2036.     SNDMSG({erande_f.snd});
  2037.     select({ROAD2の電話番号を選択してネ☆(現在は『}|ROAD2|{』)},
  2038.         ,,
  2039.         { 弘  前 },{ROAD2:={0172-37-8200}},
  2040.         { 青  森 },{ROAD2:={0177-29-1920}},
  2041.         { 八  戸 },{ROAD2:={0178-47-3260}},
  2042.         { 秋  田 },{ROAD2:={0188-31-6640}},
  2043.         { 一  関 },{ROAD2:={0191-26-5701}},
  2044.         { 盛  岡 },{ROAD2:={0196-51-4221}},
  2045.         { 北  上 },{ROAD2:={0197-64-7636}},
  2046.         { 仙  台 },{ROAD2:={022-213-3322}},
  2047.         { 石  巻 },{ROAD2:={0225-22-8311}},
  2048.         { 酒  田 },{ROAD2:={0234-26-7666}},
  2049.         { 山  形 },{ROAD2:={0236-25-6213}},
  2050.         { 東  根 },{ROAD2:={0237-43-7780}},
  2051.         { 米  沢 },{ROAD2:={0238-23-5748}},
  2052.         {会津若松},{ROAD2:={0242-32-3190}},
  2053.         { 福  島 },{ROAD2:={0245-22-1609}},
  2054.         { いわき },{ROAD2:={0246-21-7622}},
  2055.         { 郡  山 },{ROAD2:={0249-21-2194}},
  2056.         {直接入力},{setTEL}
  2057.         );
  2058.     };
  2059.  
  2060. %NKANTO    {
  2061.     SNDMSG({erande_f.snd});
  2062.     select({ROAD2の電話番号を選択してネ☆(現在は『}|ROAD2|{』)},
  2063.         ,,
  2064.         { 前  橋 },{ROAD2:={0272-54-2300}},
  2065.         { 高  崎 },{ROAD2:={0273-27-8955}},
  2066.         { 館  林 },{ROAD2:={0276-75-4101}},
  2067.         { 桐  生 },{ROAD2:={0277-44-0088}},
  2068.         { 那  須 },{ROAD2:={0287-29-3304}},
  2069.         { 足  利 },{ROAD2:={0284-73-3711}},
  2070.         { 小  山 },{ROAD2:={0285-24-9350}},
  2071.         { 宇都宮 },{ROAD2:={0286-38-9999}},
  2072.         { 水  戸 },{ROAD2:={0292-28-1393}},
  2073.         { 日  立 },{ROAD2:={0294-21-5820}},
  2074.         { 下  館 },{ROAD2:={0296-25-6401}},
  2075.         { 筑  波 },{ROAD2:={0298-55-0808}},
  2076.         { 所  沢 },{ROAD2:={0429-25-6401}},
  2077.         { 浦  和 },{ROAD2:={048-825-8920}},
  2078.         { 川  口 },{ROAD2:={048-226-0471}},
  2079.         { 熊  谷 },{ROAD2:={0485-22-9270}},
  2080.         { 越  谷 },{ROAD2:={0489-66-9950}},
  2081.         { 川  越 },{ROAD2:={0492-48-1160}},
  2082.         { 本  庄 },{ROAD2:={0495-22-7191}},
  2083.         {直接入力},{setTEL}
  2084.         );
  2085.     };
  2086.  
  2087. %SKANTO    {
  2088.     SNDMSG({erande_f.snd});
  2089.     select({ROAD2の電話番号を選択してネ☆(現在は『}|ROAD2|{』)},
  2090.         ,,
  2091.         { 千  葉 },{ROAD2:={043-299-3300}},
  2092.         { 市  原 },{ROAD2:={0436-42-2291}},
  2093.         { 君  津 },{ROAD2:={0439-55-5030}},
  2094.         { 川  崎 },{ROAD2:={044-755-4466}},
  2095.         { 横  浜 },{ROAD2:={045-323-5511}},
  2096.         { 新横浜 },{ROAD2:={045-942-3351}},
  2097.         { 厚  木 },{ROAD2:={0462-50-3260}},
  2098.         { 平  塚 },{ROAD2:={0463-24-9140}},
  2099.         { 小田原 },{ROAD2:={0465-24-4130}},
  2100.         { 藤  沢 },{ROAD2:={0466-24-6641}},
  2101.         { 横須賀 },{ROAD2:={0468-24-5272}},
  2102.         {   柏   },{ROAD2:={0471-46-4090}},
  2103.         { 松  戸 },{ROAD2:={0473-66-1591}},
  2104.         { 船  橋 },{ROAD2:={0474-35-8900}},
  2105.         { 茂  原 },{ROAD2:={0475-22-1369}},
  2106.         { 成  田 },{ROAD2:={0476-23-5181}},
  2107.         { 佐  原 },{ROAD2:={0478-52-6250}},
  2108.         {直接入力},{setTEL}
  2109.         );
  2110.     };
  2111.  
  2112. %TOKYO    {
  2113.     SNDMSG({erande_f.snd});
  2114.     select({ROAD2の電話番号を選択してネ☆(現在は『}|ROAD2|{』)},
  2115.         ,,
  2116.         { 東  京 },{ROAD2:={03-5703-0222}},
  2117.         { 東東京 },{ROAD2:={03-5703-9800}},
  2118.         { 南東京 },{ROAD2:={03-5710-5600}},
  2119.         { 北東京 },{ROAD2:={03-5710-5100}},
  2120.         { 稲  城 },{ROAD2:={0423-78-9911}},
  2121.         { 調  布 },{ROAD2:={0424-99-0200}},
  2122.         { 立  川 },{ROAD2:={0425-29-7717}},
  2123.         { 八王子 },{ROAD2:={0426-22-3141}},
  2124.         { 町  田 },{ROAD2:={0427-99-4911}},
  2125.         {直接入力},{setTEL}
  2126.         );
  2127.     };
  2128.  
  2129. %HOKURIKU{
  2130.     SNDMSG({erande_f.snd});
  2131.     select({ROAD2の電話番号を選択してネ☆(現在は『}|ROAD2|{』)},
  2132.         ,,
  2133.         { 新  潟 },{ROAD2:={025-244-7554}},
  2134.         { 上  越 },{ROAD2:={0255-26-3683}},
  2135.         {   巻   },{ROAD2:={0256-93-6270}},
  2136.         { 長  岡 },{ROAD2:={0258-33-8100}},
  2137.         { 長  野 },{ROAD2:={0262-26-4430}},
  2138.         { 松  本 },{ROAD2:={0263-35-7999}},
  2139.         { 飯  田 },{ROAD2:={0265-53-6700}},
  2140.         { 諏  訪 },{ROAD2:={0266-52-5525}},
  2141.         { 佐  久 },{ROAD2:={0267-63-6391}},
  2142.         { 軽井沢 },{ROAD2:={0267-45-2640}},
  2143.         { 上  田 },{ROAD2:={0268-25-8800}},
  2144.         { 小  松 },{ROAD2:={0761-23-5501}},
  2145.         { 金  沢 },{ROAD2:={0762-60-7971}},
  2146.         { 富  山 },{ROAD2:={0764-55-3378}},
  2147.         { 高  岡 },{ROAD2:={0766-26-9554}},
  2148.         { 七  尾 },{ROAD2:={0767-54-0482}},
  2149.         { 福  井 },{ROAD2:={0776-24-9528}},
  2150.         {直接入力},{setTEL}
  2151.         );
  2152.     };
  2153.  
  2154. %TYUBU    {
  2155.     SNDMSG({erande_f.snd});
  2156.     select({ROAD2の電話番号を選択してネ☆(現在は『}|ROAD2|{』)},
  2157.         ,,
  2158.         { 名古屋 },{ROAD2:={052-222-2911}},
  2159.         { 浜  松 },{ROAD2:={053-458-5596}},
  2160.         { 豊  橋 },{ROAD2:={0532-53-9511}},
  2161.         { 静  岡 },{ROAD2:={054-272-4011}},
  2162.         { 清  水 },{ROAD2:={0543-67-2181}},
  2163.         { 富 士 },{ROAD2:={0545-60-2600}},
  2164.         { 甲  府 },{ROAD2:={0552-26-8700}},
  2165.         { 下  田 },{ROAD2:={0558-23-2210}},
  2166.         { 沼  津 },{ROAD2:={0559-25-3121}},
  2167.         { 岡  崎 },{ROAD2:={0564-26-3731}},
  2168.         { 豊  田 },{ROAD2:={0565-26-7981}},
  2169.         { 刈  谷 },{ROAD2:={0566-25-1339}},
  2170.         { 春日井 },{ROAD2:={0568-51-6500}},
  2171.         { 半  田 },{ROAD2:={0569-26-2815}},
  2172.         { 多治見 },{ROAD2:={0572-25-6840}},
  2173.         { 高  山 },{ROAD2:={0577-32-5401}},
  2174.         { 岐  阜 },{ROAD2:={0582-53-7120}},
  2175.         { 大  垣 },{ROAD2:={0584-81-0896}},
  2176.         { 一  宮 },{ROAD2:={0586-46-2910}},
  2177.         {   津   },{ROAD2:={0592-29-1520}},
  2178.         { 四日市 },{ROAD2:={0593-54-9304}},
  2179.         { 桑  名 },{ROAD2:={0594-23-1851}},
  2180.         { 伊  勢 },{ROAD2:={0596-27-1705}},
  2181.         {直接入力},{setTEL}
  2182.         );
  2183.     };
  2184.  
  2185. %KINKI    {
  2186.     SNDMSG({erande_f.snd});
  2187.     select({ROAD2の電話番号を選択してネ☆(現在は『}|ROAD2|{』)},
  2188.         ,,
  2189.         { 大  阪 },{ROAD2:={06-941-7006}},
  2190.         { 新大阪 },{ROAD2:={06-944-4500}},
  2191.         { 枚  方 },{ROAD2:={0720-45-2704}},
  2192.         {   堺   },{ROAD2:={0722-27-9436}},
  2193.         { 泉佐野 },{ROAD2:={0724-69-4800}},
  2194.         { 茨  木 },{ROAD2:={0726-24-9130}},
  2195.         { 和歌山 },{ROAD2:={0734-74-8180}},
  2196.         { 新  宮 },{ROAD2:={0735-23-2286}},
  2197.         { 田  辺 },{ROAD2:={0739-22-4340}},
  2198.         { 奈  良 },{ROAD2:={0742-34-4191}},
  2199.         { 橿  原 },{ROAD2:={07442-2-9040}},
  2200.         { 彦  根 },{ROAD2:={0749-22-4140}},
  2201.         { 京  都 },{ROAD2:={075-255-6061}},
  2202.         { 福知山 },{ROAD2:={0773-24-2622}},
  2203.         { 大  津 },{ROAD2:={0775-25-9750}},
  2204.         { 武  生 },{ROAD2:={0778-21-3214}},
  2205.         { 神  戸 },{ROAD2:={078-322-0235}},
  2206.         { 姫  路 },{ROAD2:={0792-81-1561}},
  2207.         { 加古川 },{ROAD2:={0794-35-8734}},
  2208.         { 西  宮 },{ROAD2:={0798-64-3661}},
  2209.         {直接入力},{setTEL}
  2210.         );
  2211.     };
  2212.  
  2213. %CHUGOKU{
  2214.     SNDMSG({erande_f.snd});
  2215.     select({ROAD2の電話番号を選択してネ☆(現在は『}|ROAD2|{』)},
  2216.         ,,
  2217.         { 広  島 },{ROAD2:={082-222-7110}},
  2218.         {   呉   },{ROAD2:={0823-25-2942}},
  2219.         { 下  関 },{ROAD2:={0832-34-6001}},
  2220.         { 徳  山 },{ROAD2:={0834-32-8313}},
  2221.         { 宇  部 },{ROAD2:={0836-22-5790}},
  2222.         { 山  口 },{ROAD2:={0839-23-1085}},
  2223.         { 福  山 },{ROAD2:={0849-26-2421}},
  2224.         { 松  江 },{ROAD2:={0852-31-9666}},
  2225.         { 鳥  取 },{ROAD2:={0857-29-4694}},
  2226.         { 米  子 },{ROAD2:={0859-35-4020}},
  2227.         { 岡  山 },{ROAD2:={086-221-2207}},
  2228.         { 倉  敷 },{ROAD2:={086-462-2770}},
  2229.         { 津  山 },{ROAD2:={0868-24-0533}},
  2230.         {直接入力},{setTEL}
  2231.         );
  2232.     };
  2233.  
  2234. %SHIKOKU{
  2235.     SNDMSG({erande_f.snd});
  2236.     select({ROAD2の電話番号を選択してネ☆(現在は『}|ROAD2|{』)},
  2237.         ,,
  2238.         { 高  松 },{ROAD2:={0878-21-0251}},
  2239.         { 徳  島 },{ROAD2:={0886-55-2890}},
  2240.         { 高  知 },{ROAD2:={0888-24-5454}},
  2241.         { 宇和島 },{ROAD2:={0895-45-3255}},
  2242.         { 新居浜 },{ROAD2:={0897-32-7225}},
  2243.         { 今  治 },{ROAD2:={0898-32-6667}},
  2244.         { 松  山 },{ROAD2:={0899-31-9300}},
  2245.         {直接入力},{setTEL}
  2246.         );
  2247.     };
  2248.  
  2249. %KYUSYU    {
  2250.     SNDMSG({erande_f.snd});
  2251.     select({ROAD2の電話番号を選択してネ☆(現在は『}|ROAD2|{』)},
  2252.         ,,
  2253.         { 福  岡 },{ROAD2:={092-452-1900}},
  2254.         { 北九州 },{ROAD2:={093-541-6116}},
  2255.         { 久留米 },{ROAD2:={0942-39-8670}},
  2256.         { 大牟田 },{ROAD2:={0944-56-6751}},
  2257.         { 佐  賀 },{ROAD2:={0952-24-2584}},
  2258.         { 佐世保 },{ROAD2:={0956-46-1006}},
  2259.         { 大  村 },{ROAD2:={0957-52-5150}},
  2260.         { 長  崎 },{ROAD2:={0958-22-6181}},
  2261.         { 熊  本 },{ROAD2:={096-359-6300}},
  2262.         { 大  分 },{ROAD2:={0975-33-5455}},
  2263.         { 延  岡 },{ROAD2:={0982-34-0370}},
  2264.         { 宮  崎 },{ROAD2:={0985-32-0301}},
  2265.         { 鹿児島 },{ROAD2:={0992-24-8835}},
  2266.         {直接入力},{setTEL}
  2267.         );
  2268.     };
  2269.  
  2270. %OKINAWA{
  2271.     SNDMSG({erande_f.snd});
  2272.     select({ROAD2の電話番号を選択してネ☆(現在は『}|ROAD2|{』)},
  2273.         ,,
  2274.         { 那  覇 },{ROAD2:={098-866-7179}},
  2275.         {直接入力},{setTEL}
  2276.         );
  2277.     };
  2278.  
  2279. %setNODE{
  2280.     case(ROAD2,{},{ROAD2:={未設定}});
  2281.     SNDMSG({erande_f.snd});
  2282.     footnote({ROAD2アクセス・ポイント地域の設定処理中,,,♪});
  2283.     select({ROAD2アクセス・ポイント地域を選択してネ☆)},
  2284.         ,,
  2285.         { 北海道 },{HOKKAIDO},    { 東  北 },{TOHOKU},
  2286.         { 北関東 },{NKANTO},    { 南関東 },{SKANTO},
  2287.         { 東  京 },{TOKYO},    { 北信越 },{HOKURIKU},
  2288.         { 中  部 },{TYUBU},    { 近  畿 },{KINKI},
  2289.         { 中  国 },{CHUGOKU},    { 四  国 },{SHIKOKU},
  2290.         { 九  州 },{KYUSYU},    { 沖  縄 },{OKINAWA},
  2291.         {直接入力},{setTEL}
  2292.         );
  2293.     };
  2294.  
  2295. setNODE;
  2296.  
  2297. }; /* end of road2 */
  2298.  
  2299. %road3    {
  2300.     SNDMSG({erande_f.snd});
  2301.     footnote({ROAD3 アクセス・ポイントの電話番号を直接入力処理中,,,♪});
  2302.     %a @input({ROAD3の電話番号を入力してネ☆(入力後は「リターンキー↓」)},,
  2303.         ROAD2);
  2304.     case    (a<>{},    {Yes},{ROAD2:=@getchar(a,1,80)},
  2305.             {No},{road3});
  2306.     };
  2307.  
  2308. %SNDMSG {[FileName]
  2309. };
  2310.  
  2311. var BPS[4];
  2312. var ROAD1[64];
  2313. var ROAD2[40];
  2314. ROAD1 := telno;
  2315. ROAD2 := telno;
  2316. case(ROAD1,{},{ROAD1:={未設定}; ROAD2:={未設定}});
  2317. SNDMSG({erande_f.snd});
  2318. footnote({アクセス・ポイントROAD1の通信速度の設定処理中,,,♪});
  2319. setcdir(current);
  2320. select({    アクセス・ポイントの種類を指定してネ☆(^_^)/♪\n}|
  2321.     {     モデムが2400以上なら2400がお勧め},
  2322.     ,,
  2323.     { 1200BPS ROAD1},
  2324.         {BPS:={1200}; road112;},
  2325.     { 2400BPS ROAD1},
  2326.         {BPS:={2400}; road124;},
  2327.     { 2400BPS ROAD2},
  2328.         { road2; } ,
  2329.     { ROAD3},
  2330.         { road3; } 
  2331.         );
  2332.  
  2333. case( ROAD1 <> telno && ROAD1<>{未設定} ,
  2334. {Yes},{
  2335.     telno := @head(ROAD1,{/});
  2336.     telty := BPS;
  2337. },,{
  2338.  
  2339.     case( ROAD2 <> telno && ROAD2<>{未設定} ,
  2340.     {Yes},{
  2341.         telno := ROAD2;
  2342.         telty := {2400T};
  2343.     });
  2344. });
  2345.  
  2346.  
  2347. }; /* end of settelno */
  2348.  
  2349. %setline{
  2350.     %name @case(line,
  2351.         {T},{im({プッシュ回線})},
  2352.         {P},{im({ダイヤル回線})},
  2353.               ,{im({設定なし})} );
  2354.     select({電話回線のタイプを選んで下さい。現在は「}|name|{」です。}
  2355.     ,99999,{},
  2356.     {   変更しない  },{},
  2357.     {  プッシュ回線  },     {line :={T} },
  2358.     {  ダイヤル回線  },     {line :={P} })
  2359.     
  2360. };
  2361.  
  2362. %setlogd2{
  2363.     %setlogd2{[old]
  2364.         %a @input({この格納先は今,使用できませんが?。 例「B:」},,
  2365.             old);
  2366.         case(a<>{},{Yes},{
  2367.             case(@setcdir2(a),{Yes},{logd := a},
  2368.                            ,{setlogd2(a)})
  2369.         })
  2370.     };
  2371.  
  2372.     %a @input({受信データの格納先を設定して下さい。例「B:」,「C:\NIF」},,
  2373.         logd);
  2374.     case(a<>{},{Yes},{
  2375.         case(@setcdir2(a),{Yes},{logd := a},
  2376.                        ,{setlogd2(a)})
  2377.     })
  2378. };
  2379.  
  2380. %setlogd{
  2381.     %cur @case(logd,
  2382.         {A:},{im({ディスク装置A(A:)})},
  2383.         {B:},{im({ディスク装置B(B:)})},
  2384.         {C:},{im({ディスク装置C(C:)})},
  2385.         {D:},{im({ディスク装置D(D:)})},
  2386.         {E:},{im({ディスク装置E(E:)})},
  2387.         {F:},{im({ディスク装置F(F:)})},
  2388.         {G:},{im({ディスク装置G(G:)})},
  2389.             ,{im({直接設定:}|logd)}
  2390.     );
  2391.     select({文書を格納する装置は?。\n    現在は「} | cur | {」}
  2392.     ,99999,{},
  2393.     {変更しない},{},
  2394.     {ディスク装置 A(A:)},      {logd :={A:} },
  2395.     {ディスク装置 B(B:)},      {logd :={B:} },
  2396.     {ディスク装置 C(C:)},      {logd :={C:} },
  2397.     {ディスク装置 D(D:)},      {logd :={D:} },
  2398.     {ディスク装置 E(E:)},      {logd :={E:} },
  2399.     {ディスク装置 F(F:)},      {logd :={F:} },
  2400.     {ディレクトリ・パスを直接入力する},   {setlogd2}
  2401.     )
  2402.  
  2403. };
  2404.  
  2405.  
  2406. %setid{
  2407.     %setid2{[old]
  2408.         %a @input({ユーザIDは8文字です。 例「BBB00123」},,
  2409.             old);
  2410.         case(a<>{},{Yes},{
  2411.             case(@nochar(a)=8,{Yes},{id := a},
  2412.                            ,{setid2(a)})
  2413.         })
  2414.     };
  2415.  
  2416.     %a @input({NiftyのユーザIDを設定して下さい。例「AAA00321」},,
  2417.         id);
  2418.     case(a<>{},{Yes},{
  2419.         case(@nochar(a)=8,{Yes},{id := a},
  2420.                        ,{setid2(a)})
  2421.     })
  2422. };
  2423.  
  2424. %setpass{
  2425.     %setpassn{
  2426.     %setpass2{[old]
  2427.         %a @input({パスワードは8文字以下です。 例「MIKENEKO」},,
  2428.             old);
  2429.         case(a<>{},{Yes},{
  2430.             case(@nochar(a)<=8,{Yes},{pass := a},
  2431.                            ,{setpass2(a)})
  2432.         })
  2433.     };
  2434.  
  2435.     %a @input({Niftyのパスワードを設定して下さい。例「POCHIINU」},,
  2436.         pass);
  2437.     case(a<>{},{Yes},{
  2438.         case(@nochar(a)<=8,{Yes},{pass := a},
  2439.                        ,{setpass2(a)})
  2440.     })
  2441.     };
  2442.       /* setapass 本体 */
  2443.     %name @case(pass,
  2444.         {},{im({アクセス時に入力})},
  2445.           ,{im({予め設定済})} );
  2446.     select({パスワードを設定しておきますか?。現在は「}|name|{」です。}
  2447.     ,99999,{},
  2448.     {   変更しない  },{},
  2449.     {  他の人が使うので,アクセス時に入力する  },   {pass :={} },
  2450.     {  専用なので,予め設定しておく   },   {setpassn })
  2451.     
  2452. };  /* end of setpass */
  2453.  
  2454. %setforum{
  2455.     var dispOne[1000];
  2456.     %checkForum{[text]
  2457.         %topname @head(text,{,});
  2458.         case(@nochar(topname)<=8,
  2459.             {Yes},{
  2460.                 case(topname ,
  2461.                     text,{im({Yes})},
  2462.                         ,{checkForum(@body(text,{,}))})
  2463.             },,{
  2464.                 footnote({「} | topname | {」は8文字以上です});
  2465.                 im({No})
  2466.         })
  2467.     };
  2468.  
  2469.     dispOne := forum;
  2470.     loop({
  2471.         %a @input({巡回するフォーラムを「,」で区切って, 設定して下さい。\n}|
  2472.               {                           例「FRAV,FTOWNS1,FWINF」},,
  2473.             dispOne);
  2474.         case(a<>{},{Yes},{
  2475.             dispOne := a;
  2476.             case(@checkForum(a),{Yes},{ forum:=a; im({No}) },
  2477.                          ,{           im({Yes}) })
  2478.         },,{im({No})
  2479.         })
  2480.     });
  2481.     footnote({});
  2482. };
  2483.  
  2484. %sethp{
  2485.     var dispOne[1000];
  2486.     %checkHP{[text]
  2487.         %topname @head(text,{,});
  2488.         %id     @head(topname,{/});
  2489.         %pass   @body(topname,{/},{/});
  2490.         %hpname @tail(topname,{/});
  2491.         case(@nochar(id)==8 && @nochar(pass)<=8 && @nochar(hpname)<=8,
  2492.             {Yes},{
  2493.                 case(topname ,
  2494.                     text,{im({Yes})},
  2495.                         ,{checkHP(@body(text,{,}))})
  2496.             },,{
  2497.                 footnote({「} | topname | {」は文字数が合いません。});
  2498.                 im({No})
  2499.         })
  2500.     };
  2501.  
  2502.     dispOne := hp;
  2503.     loop({
  2504.         %a @input({巡回するHPを設定して下さい。\n\n}|
  2505.              {  形式「ID/パスワード/名前,ID2/パスワード2/名前2,,,」\n}|
  2506.              {    ID:HP主催者のID パスワード:HPのパスワード \n}|
  2507.              {    名前:英字8文字以下の名前(任意の識別名)\n\n}|
  2508.              {   例「PFF00570/HACHIKOU/MOPROOM,}|
  2509.                        {KKK00123/AKITAKEN/FUFUFU」},,
  2510.             dispOne);
  2511.         case(a<>{},{Yes},{
  2512.             dispOne := a;
  2513.             case(@checkHP(a),{Yes},{ hp:=a; im({No}) },
  2514.                           ,{        im({Yes}) })
  2515.         },,{im({No})
  2516.         })
  2517.     });
  2518.     footnote({});
  2519. };
  2520.  
  2521. %setupplt{
  2522.     %putplp{[id,data]
  2523.         write(fname, id | @xc({09}) | {:=} | @xc({7b}) |
  2524.             data | @xc({7d}) | {;\n})
  2525.     };
  2526.    var loopon[5];
  2527.    loop({
  2528.     loopon := {Yes};
  2529.     select({設定する項目を選択して下さい。},99999,{},
  2530.         {設定処理を終了する},                           {loopon:={No}},
  2531.         {パソコンに接続したモデムの種類(会社名,機種名)},{setmodem},
  2532.         {最寄りのNiftyのアクセス・ポイントの種類と電話番号},    {settelno},
  2533.         /*{最寄りのアクセスポイントの種別(速度・ROAD1/2)}, {settelty},*/
  2534.         {電話回線の種類(ダイヤル/プッシュ回線)},        {setline},
  2535.         {受信データの格納先(ドライブ名・パス名)},        {setlogd},
  2536.         {NiftyのユーザID},                            {setid},
  2537.         {Niftyのパスワード(通信時に入れることも可能)},  {setpass},
  2538.         {巡回するフォーラムの設定(複数可能)},           {setforum},
  2539.         {巡回するHPの設定(複数可能)},                 {sethp});
  2540.     /*im(modem={} || telno={} || line={} || id={})*/
  2541.     im(loopon)
  2542.     });
  2543.     %fname current | {\MOPSET.PLP};
  2544.     case(@filechk( fname ),
  2545.         {Yes},{delfile( fname )});
  2546.     putplp({modem},modem);
  2547.     putplp({telno},telno);
  2548.     putplp({telty},telty);
  2549.     putplp({telno2},telno2);
  2550.     putplp({telty2},telty2);
  2551.     putplp({line},line);
  2552.     putplp({id},id);
  2553.     putplp({pass},pass);
  2554.     putplp({logd},logd);
  2555.     putplp({forum},forum);
  2556.     putplp({hp},hp);
  2557.  
  2558. };
  2559. /***********************************************************************
  2560. *
  2561. *              MOPTERMの終了処理
  2562. *
  2563. ***********************************************************************/
  2564. %stopmop{
  2565.     select({本当に終了して良いですか?},99999,{},
  2566.       {  はい   },{stopterm},
  2567.       {  いいえ  },{})
  2568. };
  2569.  
  2570.  
  2571.  
  2572. /***********************************************************************
  2573. *
  2574. *              全体のメイン処理
  2575. *
  2576. ***********************************************************************/
  2577.  
  2578. %current @case(@nochar(@getcdir),
  2579.         3,{getchar(@getcdir,1,2)},
  2580.          ,{getcdir});
  2581. backclr(50,80,50);
  2582. footnote({});
  2583. stopbit(1);
  2584. dataleng({8bit});
  2585. xon({Yes});
  2586. rscs({Yes});
  2587. parity({None});
  2588. setoak({J});
  2589. click({No});
  2590. nattou({Yes});
  2591. lineend({CR});
  2592.  
  2593. /* オートパイロット停止時にPF12で再起動できるように */
  2594. setpf(12,{footnote({Loading..});}|
  2595.     {setcdir(} | @xc({7b}) | @getcdir | @xc({7d}) | {);} 
  2596.     | {#NYAN.PLT});
  2597.  
  2598.  
  2599. logd:={B:};     /* default */
  2600. case(@filechk( current | {\MOPSET.PLP}),
  2601.     {Yes},{#MOPSET.PLP},
  2602.     {No},{setupplt});
  2603.  
  2604. loop({
  2605.     select({処理を選んで下さい},999999,,
  2606.         {      自動通信を行います        },autoacc,
  2607.         {     受信文書の参照をします      },readdoc,
  2608.         {    送信文書の作成/更新をします     },senddoc,
  2609.         {      各種設定を変更します       },setupplt,
  2610.         {   自動処理を終了します(PF12で再起動)   },{stop},
  2611.         {    MOPTERMを終了します      },stopmop);
  2612.     im({Yes});
  2613. })
  2614.